2016-05-17 3 views
0

Я получаю дату в этом формате "Сб 2 Май 2015 00:00:00 GMT + 0500 (Пакистан Standard Time)"исключение Дата Невозможно проанализировать Java

Когда я разобрать этот используется формат

SimpleDateFormat sdf = new SimpleDateFormat(EEE MMM dd yyyy HH:mm:ss zZ (zzzz)) 

я получаю исключение исключительной даты, которое, очевидно, означает, что мой формат неверен. Может ли кто-нибудь сказать мне, какой может быть правильный формат для этого. Что писать за "(Пакистанское стандартное время)".

+2

Вы не можете использовать '(Пакистан Standard Time)' в формате даты. GMT +0500 достаточно, чтобы обозначить это временное время в Пакистане – Sanjeev

+0

Я получаю дату в этом формате, я не могу изменить это –

+1

. Еще один вариант - отрезать '(Пакистанское стандартное время)' и использовать остаток даты. он даст вам желаемый результат – Sanjeev

ответ

0

Это один из способов, чтобы разобрать дату:

public class Test { 

    static final String sample_date = "Sat May 02 2015 00:00:00 GMT+0500 (Pakistan Standard Time)".replace("GMT", "") 
      .replace(" (Pakistan Standard Time)", ""); 

    public static void main(String[] args) throws ParseException { 

     SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss Z"); 
     ParsePosition position = new ParsePosition(0); 
     Date d = sdf.parse(sample_date, position); 
     System.out.println(d); 
     System.out.println(position); 
     if (position.getErrorIndex() != -1) { 
      System.out.println(sample_date.substring(position.getErrorIndex())); 
     } 
     System.out.println(sdf.parse(sample_date)); 
    } 
} 

Ссылка: Java - unparseable date, need format to match "GMT-0400"

+0

Я уже получил правильный ответ в комментариях, но вы ответ только один я положил принять, поэтому я accpt этого @Sanjeev и неизвестные также дал правильный ответ –

Смежные вопросы