Как выполнить синтаксический анализ даты 2013-03-13T20: 59: 31 + 0000

Как проанализировать строку формата в этом формате 2013-03-13T20: 59: 31 + 0000 для объекта Date?

Я пытаюсь на этом пути, но это не работает.

DateFormat df = new SimpleDateFormat("YYYY-MM-DDThh:mm:ssTZD");
Date result =  df.parse(time);

Ответ 1

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ");

Год - нижний регистр y. Любые символы, которые находятся на входе, которые не связаны с датой (например, "T" в 2013-03-13T20:59:31+0000, должны быть указаны в ''.

Список определенных букв шаблонов см. в документации .

Parse проверяет, что указанная дата находится в указанном вами формате. Чтобы распечатать дату в определенном формате после проверки, см. Ниже:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ");
Date result;
try {
    result = df.parse("2013-03-13T20:59:31+0000");
    System.out.println("date:"+result); //prints date in current locale
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
    System.out.println(sdf.format(result)); //prints date in the format sdf
}

Ответ 2

Try:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");

проверить http://developer.android.com/reference/java/text/SimpleDateFormat.html

в частности:

                 yyyy-MM-dd 1969-12-31
                 yyyy-MM-dd 1970-01-01
           yyyy-MM-dd HH:mm 1969-12-31 16:00
           yyyy-MM-dd HH:mm 1970-01-01 00:00
          yyyy-MM-dd HH:mmZ 1969-12-31 16:00-0800
          yyyy-MM-dd HH:mmZ 1970-01-01 00:00+0000
   yyyy-MM-dd HH:mm:ss.SSSZ 1969-12-31 16:00:00.000-0800
   yyyy-MM-dd HH:mm:ss.SSSZ 1970-01-01 00:00:00.000+0000
 yyyy-MM-dd'T'HH:mm:ss.SSSZ 1969-12-31T16:00:00.000-0800
 yyyy-MM-dd'T'HH:mm:ss.SSSZ 1970-01-01T00:00:00.000+0000

Ответ 3

Пожалуйста, попробуйте следующее:

SimpleDateFormat formatDate;
formatDate= new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");

Ответ 4

Спасибо всем, кто пытался мне помочь... (+1) для всех.......

Это работает: "yyyy-MM-dd'T'HH:mm:ss"

Ответ 5

Для 2017-02-08 06:23:35 +0000 этот формат даты, я использую ниже формат:

SimpleDateFormat formatDate;
formatDate= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ZZZ");

Он работает для меня. Другие ответы не работают для меня.