1

ISO8601 维基百科文章中所述 :

使用的最小值也可以有小数,如“P0.5Y”表示半年。该小数部分可以用逗号或句号指定,如“P0,5Y”或“P0.5Y”。

但是我不能用joda-time解析这样的时间段,下面的代码:

Period.parse("P0.5Y", ISOPeriodFormat.standard());

失败:

java.lang.IllegalArgumentException:无效格式:“P0.5Y”格式错误为“0.5Y”

谁错了:维基百科,joda-time ISOPeriodFormat.standard() 还是我的错误?

使用 jodatime 2.2

4

1 回答 1

2

它看起来像 jodatime 的限制。它具有 ISOPeriodFormat 和 PeriodFormatterBuilder 用于创建 PeriodFormatters。但根据评论中的链接,ISOPeriodFormat 仅支持 ISO8601 格式的子集(不包括小数年)。PeriodFormatBuilder,虽然高度可配置,但显然只会将年份作为整数处理:

http://joda-time.sourceforge.net/apidocs/org/joda/time/format/PeriodFormatterBuilder.html

于 2013-07-31T10:34:24.473 回答