【发布时间】:2018-11-25 22:15:50
【问题描述】:
我想知道 LocalDateTime 是否在昨天之后,所以我进行了比较,但我不知道如何从 Calendar 传递到 ChronoLocalDateTime
final Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
lastClientEvent.getDateReceived().isAfter(cal);
【问题讨论】:
-
当您可以使用现代 Java 日期和时间 API
java.time时,没有理由也使用像Calendar这样过时的类。java.time提供您需要的所有功能(例如,如 the answer by YCF_L 所示)。 -
作为 Ole V.V.评论说,传统的日期时间类完全被现代 java.time 类所取代。您的问题试图将传统与现代相结合是有缺陷的。您无需再碰
Calendar或Date课程。要与尚未针对 java.time 更新的旧代码交互,请在旧遗留类上调用新的转换方法来来回转换。但是只在 java.time 中编写所有新代码。 -
另一件事,如果您正在跟踪实际时刻,则不应使用
LocalDateTime。该类故意缺少任何时区或与 UTC 偏移的概念。因此,它不能代表片刻。它代表大约 26-27 小时(时区范围)范围内的潜在时刻。对于实际时刻,您应该使用Instant和ZonedDateTime。Instant.now()捕获 UTC 中的当前时刻。ZonedDateTime.now( ZoneId )捕获特定地区(时区)人们使用的挂钟时间中看到的当前时刻。
标签: java date time java-time localdate