您假设 LocalDateTime 表示带有时区的日期/时间是不正确的。此类没有时区或与 UTC 的偏移量。相反,它仅描述一天中的日期和时间。
即时是 UTC 时间轴上的精确时间点,自 1970 年以来以纳秒表示-01-01T00:00:00Z。对于大多数业务逻辑和数据交换来说,它是一个绝佳的选择,因为它符合首选的 UTC 标准。
OffsetDateTime 将 Instant 与 UTC 的偏移量结合在一起,在特定时区创造一个时刻。它允许调整和异常,例如夏令时。
ZoneId 标识时区,包括其偏移量和调整规则。了解 ZoneId 和 Instant 可以让我们确定该区域的本地时间。
ZonedDateTime 可以被认为是带有关联 ZoneId 的 Instant。它表示特定时区上下文中的时间时刻。
与之前的类型不同,LocalTime、LocalDate 和 LocalDateTime 不代表一个特定的时刻。它们描述了时间线上没有指定位置的日期或时间的一般概念。
尽管缺少特定时刻,LocalDateTime 仍具有三个主要用例:
下表提供了 Java 中所有日期时间类型的全面概述,包括现代的和传统的,以及SQL 标准定义的那些:
[Java 中包含所有日期时间类型的表的图像]
Instant 和 LocalDateTime 是截然不同的时间单位, Instant 表示时间线上的特定时刻,LocalDateTime 表示没有时区或确定时刻的日期和时间。通过了解它们的独特特征,您可以根据应用程序的特定需求选择合适的类型。
以上是Java 中的 Instant 与 LocalDateTime:什么时候应该使用它们?的详细内容。更多信息请关注PHP中文网其他相关文章!