2015-02-20 5 views
3

Я обрабатываю список дат из входного файла, и мне нужно преобразовать их из String в Date. Примеры формата:Java SimpleDateFormat не правильно разобрал

9/2/2013 7:34:17 PM
1/13/2011 10:47:36 AM

Каждый раз, когда строка считывается, дата хранится в Строковая переменная dateAsString. Вот что я получил:

DateFormat format = new SimpleDateFormat("MM/dd/YYYY hh:mm:ss a"); 
Date myDate = format.parse(dateAsString); 
System.out.println(myDate.toString()); 

Выход неправилен:

9/2/2013 7:34:17 PM становится Вс Дек 30 19:34:17 EST 2012
1/13/2011 10:47:36 AM становится Sun Dec 26 10:47:36 EST 2010

Это кажется довольно простым, поэтому я смущен. Что я делаю не так?

+0

Используйте yyyy вместо YYYY. –

+0

Ух, так просто! Благодарю. – Erica

ответ

1

Просто попробуйте «гггг» вместо «YYYY»

1

Капитал «Y» означает «недели года», где «у» представляет фактический год. Вместо этого попробуйте использовать yyyy.

Для получения дополнительной информации по форматированию ознакомьтесь с API SimpleDateFormat, где они приведут примеры использования шаблонов.

Extra Info

Только в случае, если вам интересно, «неделя года» это год, когда все недели в году являются

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