gpt4 book ai didi

java - 如何检查我们现在是否位于两个日期时间对象之间?

转载 作者:行者123 更新时间:2023-12-02 10:00:56 26 4
gpt4 key购买 nike

我有一个对象,它的成员有开始日期时间和结束日期时间

class MyObject {  
DateTime start;
DateTime end;

public MyObject(String isoUtcStart, String isoUtcEnd) {
this.start = new DateTime(isoUtcStart);
this.end = new DateTime(isoUtcEnd);
}
}

我想要确定我们现在是否处于这些时刻的范围内。
我的做法如下:

public boolean isWithinCurrentTime(MyObject o) {  
DateTime now = DateTime.now(DateTimeZone.UTC);
return (o.getStart().isBefore(now) || o.getStart().isEqual(now))
&& (o.getEnd().isAfter(now) || o.getEnd().isEqual(now));
}

但这似乎有点矫枉过正。有没有更好的办法?我的意思是:

  1. 有类似 isBeforeOrEqual 的东西吗? ?找不到这样的方法
  2. o.getStart().isBeforeNow()有什么区别吗? ?不确定这是否相同,即 UTC 比较
  3. 正在移至 long比较 ( getmillis ) 是一种更明智的方法吗?

最佳答案

使用joda的Interval类来表示[start;end)时间间隔。然后检查这个时间间隔是否包含指定的时刻。

Interval interval = new Interval(o.getStart(), o.getEnd());
interval.contains(DateTime.now(DateTimeZone.UTC))

或者您可以尝试使用 interval.containsNow() 而无需显式传递 now

关于java - 如何检查我们现在是否位于两个日期时间对象之间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55638329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com