【问题标题】:Joda-Time ISO8601 standard ISOPeriodFormat cannot parse decimal fractionJoda-Time ISO8601 标准 ISOPeriodFormat 无法解析小数部分
【发布时间】:2013-07-31 18:34:24
【问题描述】:

ISO8601 wikipedia article 中所述:

使用的最小值也可以有小数,如“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

【问题讨论】:

标签: java jodatime


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    • 2013-08-17
    • 1970-01-01
    相关资源
    最近更新 更多