我有一个由ISODateTimeFormat.dateTimeParser()
解析的JodaTime DateTime对象来自一个字符串,该字符串可能有一个或多个未指定的字段,例如“2012-05”情况下的日期,或者“T11”情况下的年份: 55" 。但是,似乎这些字段总是使用Unix纪元的默认值填充。
有没有办法知道输入字符串中哪些字段实际未指定?
答案 0 :(得分:0)
如果您丢失了时间信息(除了时区之外),那么您将没有有效的ISO 8601格式。我有点惊讶Joda Time并没有抛出错误,并且不会感到惊讶,你无法弄清楚遗漏了什么。
答案 1 :(得分:0)
不,使用ISODateTimeFormat.dateTimeParser()
时无法找出解析的内容或未解析的内容。一种选择是手动尝试不同的解析器 - 即。尝试严格的(日期和全部时间),然后放下毫秒,然后放下秒,依此类推,直到其中一个通过。痛苦但可行。
计划通过将解析与对象构造分开来对JSR-310进行不同的处理。