2017-08-11 201 views
3

首先,我需要使用Java 7,所以我不能使用SE8時間的東西,但我很樂意學習它。尋找一個喬達時間持續時間是0秒長

我有時間的名單如下:

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中存在常量ZERO,我認爲這是以某種方式鏈接到它。我如何比較呢?還是應該?

http://joda-time.sourceforge.net/apidocs/org/joda/time/Duration.html

回答

6

你應該只能夠做

if (duration.getMillis()==0) 

getMillis()返回持續時間的長度,單位爲毫秒。

+0

哦,我假設getMills()只會得到毫秒,不包括秒,分鐘,小時,天等等。但這很有意義,因爲它沒有遵循getStandardDays(),getStandardHours()等格式。會接受你的答案 - 非常感謝! –

1

ThreeTen-Backport

Joda-Time項目現在處於維護模式。團隊建議遷移到java.time類。

Java 8及更高版本的大部分java.time功能都被移植到ThreeTen-Backport項目中的Java 6和Java 7中。

org.threeten.backport.Duration class提供了一個isZero方法來測試零長度。

myDuration.isZero()