При анализе дат и времени из документов XML в объекты JodaTime я использую общий набор утилит для конвертирования, как правило, используя синтаксические анализаторы и форматирования, предоставленные org.joda.time.format.ISODateTimeFormat
.Анализ синтаксиса xs: дата с часовым поясом в Joda LocalDate
Это нормально работает в большинстве случаев, но на этот раз я вижу документы с xs:date
значением формата 2010-08-19Z
. Это вполне допустимое значение xs:date
, но ни один из стандартных ISODateTimeFormat
-генерированных парсеров LocalDate
, которые я пробовал, примет его. Ближайший я могу найти ISODateTimeFormat.dateParser()
, который примет довольно странно 2010-08-19TZ
, но не 2010-08-19Z
(обратите внимание T
).
Это все очень раздражает, так как и Joda, и XML Schema должны строго придерживаться правил форматирования даты и времени ISO, но ни один из них не является, или спецификация нечеткая.
Перед тем, как я признаю поражение и ручной показ в специальном формате, может ли кто-нибудь указать мне на -сертифицированный парсер, который будет читать это значение?
Так что спецификации не совсем совпадают. Great :( – skaffman
Я думаю, что ISO-8601 был определен довольно много лет назад, задолго до XML-схем, и они, вероятно, не думали о датах так же строго, как в спецификации XML Schema. –