我有一个javax.xml.datatype.Duration
,其中包含毫秒部分,例如持续时间为1.5毫秒(1500微秒):
javax.xml.datatype.Duration
我需要以纳秒为单位获取此值,但是Duration duration = DatatypeFactory.newInstance().newDuration("PT0.0015S");
提供的最小时间单位似乎是Duration
,它返回getTimeInMillis
并切去小于毫秒的任何内容。
我如何获得以纳秒为单位的持续时间?
Duration API在这里令我有些惊讶,因为您必须使用long
来获得持续时间的seconds部分。该方法返回一个Duration.getField(Field),该值可以是Number
(用于天,小时,分钟等)或BigInteger
(仅用于秒)。
要获得几分之一秒,您可以这样做:
BigDecimal
请注意,如果未定义该字段,Duration duration = DatatypeFactory.newInstance().newDuration("PT0.0015S");
BigDecimal seconds = (BigDecimal) duration.getField(DatatypeConstants.SECONDS);
将返回getField
。
然后,您可以根据需要将秒转换为其他时间单位。
null