【发布时间】:2021-05-16 14:52:22
【问题描述】:
我有一个 DateTime 对象列表,我的任务是比较它们并找到最新的时间戳。从 Joda Api 使用 DateTime 类。我已经在这部分停留了一段时间。非常感谢您的帮助
【问题讨论】:
-
类似于Java - Joda time List<LocalDate> find latest date。 你的搜索结果是什么?
标签: java datetime time jodatime
我有一个 DateTime 对象列表,我的任务是比较它们并找到最新的时间戳。从 Joda Api 使用 DateTime 类。我已经在这部分停留了一段时间。非常感谢您的帮助
【问题讨论】:
标签: java datetime time jodatime
List<DateTime> dateTimeObjects = Arrays.asList(
new DateTime(2021, 2, 13, 21, 0, DateTimeZone.forID("Asia/Istanbul")),
new DateTime(2021, 2, 13, 22, 0, DateTimeZone.forID("Atlantic/Madeira")),
new DateTime(2021, 2, 13, 23, 0, DateTimeZone.forID("Antarctica/Macquarie")));
DateTime latestDateTime = Collections.max(dateTimeObjects);
System.out.println(latestDateTime);
输出:
2021-02-13T22:00:00.000Z
马德拉岛的时间是 22:00。您可能想知道 Macquarie 的 23:00 时间似乎更晚,但 Macquarie 的 UTC 偏移量为 +11:00,因此该时间实际上早了 10 小时。 DateTime 对象是 Comparable 并按即时(时间点)进行比较,而不是按时钟小时。所以我们得到了最新的时间点。我们总是会,即使是在多个时区混合时。
Collections.max() 如果列表为空,则抛出 NoSuchElementException。如果列表包含null,它会抛出NullPointerException(除非null 是唯一元素,那么它可能会被返回)。
文档链接: Collections.max()
【讨论】: