考虑例子:
final Duration twoSeconds = Duration.ofSeconds(2);
// final long microseconds = twoSeconds.get(ChronoUnit.MICROS); throws UnsupportedTemporalTypeException: Unsupported unit: Micros
final long microseconds = twoSeconds.toNanos() / 1000L;
System.out.println(microseconds);
我想知道是否有更好的方法来获得持续时间(以微秒为单位),而不是手动从纳秒转换。
答案 0 :(得分:8)
我不会将java.time
API用于此类任务,因为您只需使用
long microseconds = TimeUnit.SECONDS.toMicros(2);
来自自{5}以来的concurrency API。
但是,如果您已有Duration
个实例或任何其他理由坚持使用java.time
API,则可以使用
Duration existingDuration = Duration.ofSeconds(2);
long microseconds = existingDuration.dividedBy(ChronoUnit.MICROS.getDuration());
答案 1 :(得分:3)
根据霍尔格的答案,我最喜欢的是:
final long microseconds = TimeUnit.NANOSECONDS.toMicros(twoSeconds.toNanos())