发现如果乔达时间持续时间为0秒长

问题描述 投票:3回答:3

首先,我需要使用Java 7的,所以我不能使用SE8时间的东西可悲的是,虽然我很想了解它,而不是!

我有时间的名单如下:

List<Duration> durations;

大多数这些值均约8小时之久,但有些是零(有意地)。如何检查,如果他们是0天,0分0秒,0毫秒长?我需要检查每一个方法如下还是有一个巧妙的方法?

for(Duration duration : durations){
    if(duration.getStandardDays() == 0 && 
       duration.getStandardHours() == 0 && 
       duration.getStandardSeconds() == 0){
        //do something
    }
}

我想问的原因是我发现有API中的常量零,而我认为这是某种链接到它。如何比较它呢?或者我应该?

https://www.joda.org/joda-time/apidocs/org/joda/time/Duration.html

java time java-7 jodatime
3个回答
6
投票

你应该能够做到

if (duration.getMillis()==0)

getMillis()返回持续时间的长度,以毫秒为单位。


2
投票

您可以尝试使用duration.isEqual(Duration.ZERO)。该isEqual方法在AbstractDuration.java和静态Duration.ZERO值所限定here定义。


1
投票

ThreeTen-Backport

该乔达时间项目现在处于维护模式。这是团队建议迁移到java.time类。

ThreeTen-Backport项目大部分的Java 8的java.time功能,后来又回来了,移植到Java 6和Java 7。

所述org.threeten.backport.Duration类提供isZero方法来测试长度为零。

myDuration.isZero()
© www.soinside.com 2019 - 2024. All rights reserved.