gpt4 book ai didi

Java8 : LocalDateTime or TimeStamp

转载 作者:搜寻专家 更新时间:2023-10-31 19:32:07 24 4
gpt4 key购买 nike

在何时何地哪个更可取?

我不知道它们之间到底有什么实际区别。

来自 LocalDateTime 的文档

...Time is represented to nanosecond precision. For example, the value "2nd October 2007 at 13:45.30.123456789" can be stored in a LocalDateTime.

我假设 LocalDateTime 也可以接受直到纳秒。所以我认为,我可以用 LocalDateTime 替换我的代码,这些被声明为 TimeStamp。如果我错了,请纠正我。

场景:我们计划用 Java-8 升级我们的项目。使用 JAVA-8 的新功能(例如:Lambda、Streams 等)修改旧代码样式。但是我们在决定日期和时间时遇到了麻烦。大多数带有 java.util.Date 的代码已更改为 java.time.LocalDatejava.time.LocalDateTime。对于 TimeStamp 的情况,我不知道这个问题

我们应该用 LocalDateTime 替换它们吗?

最佳答案

在当前的开发中,您应该更喜欢 LocalDateTime 和其他 Java8 时间类。

  • 它们的优势在于,时间点定义 (Instant) 和持续时间 (Duration) 或基于片段的定义 (LocalDate, LocalTime).

  • 它们允许一组非常好的操作/计算逻辑方法(与 java.util.Date 不同)。

  • 还介绍了单位转换 (Duration.toDays())。

  • 最后但同样重要的是涵盖了时区 hell (ZonedDateTime)。

一个小缺点是缺少很多您可能想要利用的第三方 API 的支持。但这应该只是时间问题,从 Java8 时间 API 到 Calendar/Date 的转换绝非易事。

如果你有一个成熟的软件,那么在你利用上面提到的一些优势之前,用基于 Java8 的接口(interface)替换旧的基于日期/日历的接口(interface)只是一个风险。

如果您想用 Java8 时间工具箱之外的东西替换旧的 TimeStamp 参数,那么您可以使用 InstantLocalDateTime分区日期时间。不同之处在于 Instant 值在计算时作为基于 ZoneOffset.UTC 处理,而 LocalDateTime 根据定义没有任何时区关系.

提示:如果某些事情发生在 2018-01-02 10:24:12 时,使用 LocalDateTime 是一件非常好的事情例如系统印度和美国的制度。在几乎所有其他情况下,您可能更喜欢使用 InstantZonedDateTime 明确定义时区。

关于Java8 : LocalDateTime or TimeStamp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41998144/

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