我正在尝试使用 Joda 来支持所有 XACML 数据时间,但是无法让它从诸如“P50DT4H4M3S”之类的字符串中解析持续时间。我怀疑问题是 ISO 和 W3C 在某些时候分道扬镳,而 Joda 支持 ISO 路径。
无论如何,有没有一种简单的方法可以弥合差距。如果可能的话,我想避免构建自己的解析器。
我知道 javax.xml 类型,它似乎可以满足我的需要,除了它基于 GregorianCalendar,我希望通过使用 Joda 来避免这种情况。
P50DT4H4M3S
是Period
Joda-Time 术语中的一个,可以使用PeriodFormatter
. ISOPeriodFormat中有标准解析器。
像这样的东西:
PeriodFormatter formatter = ISOPeriodFormat.standard();
Period period = asd.parsePeriod(periodString);
Duration duration = dsa.toStandardDuration();