將XML文檔中的日期和時間解析爲JodaTime對象時,我使用了一組通用的轉換實用程序,通常使用由org.joda.time.format.ISODateTimeFormat
提供的解析器和格式化程序。將xs:帶時區的日期分解爲Joda LocalDate
這在大多數情況下都能正常工作,但是這次我看到格式2010-08-19Z
的xs:date
值的文檔。這是一個非常有效的xs:date
值,但我試過的標準ISODateTimeFormat
-生成的LocalDate
解析器都不會接受它。我能找到的最接近的是ISODateTimeFormat.dateParser()
,它將接受相當奇怪的2010-08-19TZ
,但不接受2010-08-19Z
(注意T
)。
由於Joda和XML Schema都應該嚴格遵守ISO日期/時間格式規則,但這兩者中的任何一個都不是,或者規範是模糊的,這是非常令人惱火的。
在我承認失敗和手卷自定義格式之前,任何人都可以指向我的ISODateTimeFormat
-sourced解析器,它將讀取該值?
所以規格不太匹配。很好:( – skaffman 2010-08-19 21:08:00
我認爲ISO-8601是在幾年前定義的,早在XML Schema之前,他們可能沒有像XML Schema規範那樣嚴格地考慮日期。 – 2010-08-19 21:14:09