0

我有一个从可能具有一个或多个未指定字段的字符串解析的 JodaTime DateTime 对象ISODateTimeFormat.dateTimeParser(),例如“2012-05”的情况下的天,或“T11:55”的情况下的年份。但是,似乎这些字段总是填充有 Unix 时代的默认值。

有什么方法可以知道输入字符串中实际上未指定哪些字段?

4

2 回答 2

0

如果您缺少一些时间信息(时区除外),那么您就没有有效的 ISO 8601 格式。我有点惊讶 Joda Time 没有抛出错误,也不惊讶你无法弄清楚丢失了什么。

http://docstore.mik.ua/orelly/xml/schema/ch04_05.htm

于 2012-05-03T23:34:45.917 回答
0

不,没有办法找出使用ISODateTimeFormat.dateTimeParser(). 一种选择是手动尝试不同的解析器 - 即。尝试严格的(日期和全职),然后放下毫秒,然后放下秒,依此类推,直到其中一个过去。痛苦,但可行。

JSR-310 计划通过将解析与对象构造分开来以不同方式处理此问题。

于 2012-05-04T16:52:20.613 回答