从JodaTime DateTime对象访问未指定的字段

时间:2012-05-03 23:04:08

标签: java datetime jodatime

我有一个由ISODateTimeFormat.dateTimeParser()解析的JodaTime DateTime对象来自一个字符串,该字符串可能有一个或多个未指定的字段,例如“2012-05”情况下的日期,或者“T11”情况下的年份: 55" 。但是,似乎这些字段总是使用Unix纪元的默认值填充。

有没有办法知道输入字符串中哪些字段实际未指定?

2 个答案:

答案 0 :(得分:0)

如果您丢失了时间信息(除了时区之外),那么您将没有有效的ISO 8601格式。我有点惊讶Joda Time并没有抛出错误,并且不会感到惊讶,你无法弄清楚遗漏了什么。

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

答案 1 :(得分:0)

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

计划通过将解析与对象构造分开来对JSR-310进行不同的处理。