Является ли мой шаблон формата Joda Time неправильным для создания `T` и` Z` в разобранном выходном формате DateTime? - PullRequest
2 голосов
/ 13 января 2011

Используя Синтаксис шаблона Joda Time * ниже 1002 *, эта строка ввода:

Sunday, January 09, 2011 6:15:00 PM

становится этой датой-временем:

2011-01-09T06:15:00.000Z

Код:

String start = "Sunday, January 09, 2011 6:15:00 PM";

DateTimeFormatter parser1 = 
DateTimeFormat.forPattern("EEEE, MMMM dd, yyyy H:mm:ss aa");

DateTime startTime = parser1.parseDateTime(start);

Этот шаблон формата неверен?Если нет, то что T и Z делают внутри вывода DateTime?

2011-01-09T06:15:00.000Z

Ответы [ 3 ]

14 голосов
/ 13 января 2011

T: обозначает начало "временной части" строки. Зона: 'Z' выводит смещение. Я полагаю, в этом случае GMT. Источник: http://joda -time.sourceforge.net / apidocs / орг / Joda / время / формат / DateTimeFormat.html

Я всегда использую эту строку формата: yyyy-MM-dd'T'HH:mm:ss.SSSZ

И, да, они не являются неправильными, если они присутствуют в вашей строке.

12 голосов
/ 13 января 2011

Вы только показали код для разбора - не то, как вы преобразовали значение DateTime обратно в String.

Я сильно подозреваю, что вы просто звонитеtoString(), в котором используется формат DateTime ISO8601 по умолчанию.

Не забывайте, что значение DateTime представляет момент времени в определенном часовом поясе и календарной системе - оно не имеет понятия о форматеузоры.«T» и «Z» не в значении DateTime - они просто в представлении по умолчанию значения.Это похоже на преобразование int в строку - в нем используется десятичное число, но само число является просто числом.

Если вы хотите отформатировать DateTime определенным образом, вам следуетиспользуйте

String text = formatter.print(startTime);
2 голосов
/ 14 июля 2015

Вместо того, чтобы создавать свой собственный форматер, вы можете использовать один, заранее определенный временем Joda.Вы найдете их в org.joda.time.format.ISODateTimeFormat.

На самом деле, в вашем случае я бы использовал форматер ISODateTimeFormat.basicDateTimeNoMillis.Я думаю, что у вас есть шаблон, который вы искали: yyyyMMdd'T'HHmmssZ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...