gpt4 book ai didi

Java 1.8 时间功能

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:10:11 26 4
gpt4 key购买 nike

因此 Java 1.8 带有一组全新的(和旧的)类来管理时间计算:java.time.Instantjava.time.LocalTimejava.time.temporal.ChronoUnit,也许还有更多...

但为什么没有简单的方法来计算它们之间的时差呢?我希望“time_later - time_earlier”是最常用的时间操作,但这无处可见。我不能用一个 LocalTime 减去另一个 LocalTime 得到一个新的 LocalTime;我无法从一个 Instant 中减去另一个 Instant 来获得一个新的 Instant。相反,我不得不摆弄 ChronoUnits.between、长毫秒和诸如此类的东西来实现这个非常有用的东西。

这是为什么?必须有一些我不明白的事情发生吗?或者我只是愚蠢...?

最佳答案

在 Java 8 之前,您的问题通常的答案是“使用 Joda Time”

但 Joda Time 的作者 (Stephen Colebourne) 深入参与了新的 Java 8 时间类和方法。这里有两篇非常好的文章:

对于您的具体问题,您可能需要考虑 Java 8“Duration”和“LocalTime”、“LocalDate”和/或“LocalTimeDate”(以及其他选项):

// A duration of 3 seconds and 5 nanoseconds
Duration duration = Duration.ofSeconds(3, 5);
Duration oneDay = Duration.between(today, yesterday);

// Tomorrow
LocalDate tomorrow = LocalDate.now().plusDays(1);

// Yesterday
LocalDate yesterday = LocalDate.now().plusDays(-1);

// before 5 houres and 30 minutes
LocalDateTime dateTime = LocalDateTime.now().minusHours(5).minusMinutes(30);

关于Java 1.8 时间功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24471102/

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