gpt4 book ai didi

java - 我如何检查 joda 时间瞬间是否正在发生?

转载 作者:行者123 更新时间:2023-12-01 13:34:44 25 4
gpt4 key购买 nike

我有一个即时事件列表,我想遍历所有即时事件并找出其中是否有任何事件正在发生。这可能与 Instants 有关还是我自己混淆了?

我是否应该使用两个日期时间,一个用于事件开始,一个用于事件之后,然后进行检查?

最佳答案

假设您在谈论“即时”时指的是类org.joda.time.DateTime,您必须注意到答案取决于您的目的所需的粒度。通常,JodaTime 中的瞬间可以精确到毫秒。如果您想将任何时刻与“now”(即 DateTime.now())进行比较,那么我建议使用间隔,如下所示:

DateTime now = DateTime.now();
DateTime from = now.minusMinutes(1); // example - maybe you need seconds instead
DateTime to = now.plusMinutes(1); // example - maybe you need seconds instead
Interval range = new Interval(from, to);

for (DateTime test : instants) { // supposing instants as List<DateTime>
if (range.contains(test)) {
return test;
}
}

// here not found any equality, process according to your needs

请记住,如果您使用 equals() 代替,那么您几乎不会遇到列表中可能存在的任何时刻。此外,方法 equals(Object) 比较绝对时间和年代(包括时区)。另一种方法 isEqual(ReadableInstant) 仅比较绝对时间,这可能更好,但由于粒度问题也不理想。

关于java - 我如何检查 joda 时间瞬间是否正在发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21373105/

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