gpt4 book ai didi

java - 解析 xs :date with timezone into Joda LocalDate

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:18:38 24 4
gpt4 key购买 nike

当将日期和时间从 XML 文档解析为 JodaTime 对象时,我使用一组通用的转换实用程序,通常使用 org.joda.time.format.ISODateTimeFormat 提供的解析器和格式化程序。

这在大多数情况下都可以正常工作,但这次我看到了 xs:date 值为 2010-08-19Z 格式的文档。这是一个完全有效的 xs:date 值,但我试过的标准 ISODateTimeFormat 生成的 LocalDate 解析器都不会接受它。我能找到的最接近的是 ISODateTimeFormat.dateParser(),它将接受相当奇怪的 2010-08-19TZ,但不接受 2010-08-19Z (注意 T)。

这一切都非常令人恼火,因为 Joda 和 XML Schema 都应该严格遵守 ISO 日期/时间格式规则,但其中一个不是,或者规范是模糊的。

在我承认失败并手工制作自定义格式之前,任何人都可以指出一个源自 ISODateTimeFormat 的解析器来读取该值吗?

最佳答案

我相信根据 ISO-8601,“Z”是时间值的一部分。 “T”分隔符仅用于创建组合的日期/时间值。严格解读这意味着“Z”不能出现在没有时间值的日期之后,时间值可以是空的,因此是“奇怪的”2010-08-18TZ

这似乎是 xs:date 和 ISO-8601 定义之间的轻微阻抗不匹配。

编辑:我找到了 ISO 8601 的副本.它没有定义“时区日期”的概念,如 XML Schema Datatypes 中定义的那样。规范

与其从头开始编写一个简单的包装器,不如将带有时区的 xs:date 实例转换为相应的 ISO-8601 值(即只需插入“T”),然后使用现有的 ISODateTimeFormat.dateParser( )?

关于java - 解析 xs :date with timezone into Joda LocalDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3523289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com