javax.xml.datatype.Duration to nanoseconds

问题描述 投票:0回答:1

我有一个javax.xml.datatype.Duration,其中包含毫秒部分,例如持续时间为1.5毫秒(1500微秒):

javax.xml.datatype.Duration

我需要以纳秒为单位获取此值,但是Duration duration = DatatypeFactory.newInstance().newDuration("PT0.0015S"); 提供的最小时间单位似乎是Duration,它返回getTimeInMillis并切去小于毫秒的任何内容。

我如何获得以纳秒为单位的持续时间?

java date duration
1个回答
0
投票

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
© www.soinside.com 2019 - 2024. All rights reserved.