查找 Joda 持续时间是否为 0 秒
Finding if a Joda Time Duration is 0 seconds long
首先,我需要使用 Java 7,所以我不能遗憾地使用 SE8 Time 的东西,尽管我很想学习它!
我有一个持续时间列表如下:
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
你应该可以做到
if (duration.getMillis()==0)
getMillis()
returns 持续时间的长度,以毫秒为单位。
ThreeTen-Backport
Joda-Time 项目现在处于维护模式。它的团队建议迁移到 java.time 类.
Java 8 及更高版本的许多 java.time 功能被反向移植到 ThreeTen-Backport 项目中的 Java 6 和 Java 7。
用于测试零长度的 org.threeten.backport.Duration
class offers a isZero
方法。
myDuration.isZero()
您可以尝试使用 duration.isEqual(Duration.ZERO)
。 isEqual
方法在 AbstractDuration.java and the static Duration.ZERO
value as defined here 中定义。
首先,我需要使用 Java 7,所以我不能遗憾地使用 SE8 Time 的东西,尽管我很想学习它!
我有一个持续时间列表如下:
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
你应该可以做到
if (duration.getMillis()==0)
getMillis()
returns 持续时间的长度,以毫秒为单位。
ThreeTen-Backport
Joda-Time 项目现在处于维护模式。它的团队建议迁移到 java.time 类.
Java 8 及更高版本的许多 java.time 功能被反向移植到 ThreeTen-Backport 项目中的 Java 6 和 Java 7。
用于测试零长度的 org.threeten.backport.Duration
class offers a isZero
方法。
myDuration.isZero()
您可以尝试使用 duration.isEqual(Duration.ZERO)
。 isEqual
方法在 AbstractDuration.java and the static Duration.ZERO
value as defined here 中定义。