Как мне разобрать мою дату в формате мм / дд / гг? - PullRequest
0 голосов
/ 03 декабря 2011

Я хочу иметь возможность проанализировать этот формат даты и времени "2011-12-02T16: 18: 12.479-05: 00" в формате мм / дд / гг. Каков наилучший способ сделать это? Я пытаюсь сделать -

final DateFormat dateFormatIn = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.S'Z'");
final DateFormat dateFormatOut = new SimpleDateFormat("MMMMMMMMM d, yyyy");
String timestamp = dateFormatOut.format(dateFormatIn.parse(someDate);

Но я получаю исключение 'java.text.ParseException: Unparseable date: "2011-12-02T16: 18: 12.479-05: 00" "Любое понимание того, что я могу делать неправильно?

Ответы [ 4 ]

1 голос
/ 03 декабря 2011

Я считаю, что ваша проблема из-за отметок Z.

new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SZ");

Написал быстрый скрипт для его проверки. Работает нормально сейчас.

1 голос
/ 03 декабря 2011

Ваша дата ввода 2011-12-02T16:18:12.479-05:00 содержит миллисекунды.Вместо этого используйте следующее

final DateFormat dateFormatIn = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
0 голосов
/ 03 декабря 2011

Если все остальное терпит неудачу, joda-time joda-time - довольно удивительная библиотека утилит времени, которая сделает форматирование даты довольно простым.На их сайте есть несколько учебных пособий, а также API.Что касается вашего ParseException, я считаю, что ответы выше должны быть полезны:)

0 голосов
/ 03 декабря 2011

Попробуйте ..

final DateFormat dateFormatOut = new SimpleDateFormat("MMM, dd, yyyy");
...