- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在何时何地哪个更可取?
我不知道它们之间到底有什么实际区别。
来自 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.LocalDate
或 java.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
参数,那么您可以使用 Instant
、LocalDateTime
或分区日期时间
。不同之处在于 Instant
值在计算时作为基于 ZoneOffset.UTC
处理,而 LocalDateTime
根据定义没有任何时区关系.
提示:如果某些事情发生在 2018-01-02 10:24:12
时,使用 LocalDateTime
是一件非常好的事情例如系统印度和美国的制度。在几乎所有其他情况下,您可能更喜欢使用 Instant
或 ZonedDateTime
明确定义时区。
关于Java8 : LocalDateTime or TimeStamp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41998144/
我在从两个 LocalDateTime 对象获取秒数时遇到问题。 // a timestammp for the time when the connection was established pu
我有字段 initiationDate,它由 ToStringSerializer 类序列化为 ISO-8601 格式。 @JsonSerialize(using = ToStringSerializ
我有一个初始日期和一个 cron 表达式。我怎样才能找到满足此 cron 表达式的下一个日期?。 String cronExpresion = "* * * * * *" LocalD
我需要做一个 LocalDateTime UTC 日期到另一个日期的转换 LocalDateTime考虑特定时区 tz 的变量。 在我的研究中,我找到了很多解决方案,但它们都转换了 LocalDate
这个问题在这里已经有了答案: Java 8: Difference between two LocalDateTime in multiple units (11 个答案) 关闭 6 年前。 我知道
给定日期时间和时间, LocalDateTime rightDateWrongTime = new LocalDateTime("2017-03-02T15:23:00.000");
将 LocalDateTime 转换为 UTC 中的 LocalDateTime。 LocalDateTime convertToUtc(LocalDateTime date) { //do
这是我的代码: private final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM dd HH:mm:ss");
我想为一些沉迷于日期值的数据创建一个小型 GUI。所以我在 JavaFX 中使用 LocalDateTimeTextField。所以我将使用以下代码获取选定的时间: LocalDateTimeText
解析 DateTime 时出现异常。我在这里缺少什么 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("0DDDHHmmss");
我有 REST 网络服务公开资源和创建日期。它是用 Java 8 编写的 - 使用 LocalDateTime。 Jackson 2 正在将其序列化为: “创建日期”:[2016, 5, 19, 18
有什么简单的方法可以将 Java 8 的 LocalDateTime 转换为 Joda 的 LocalDateTime? 其中一种方法是将其转换为字符串,然后从该字符串创建 Joda 的 LocalD
我在 Java 8 中使用 LocalDateTime.now() 获取 LocalDateTime。但有时这个 now() 函数会以没有秒的格式返回时间给我。我认为这是因为秒为零,但我需要秒。 代码
Date与LocalDateTime和LocalDate互相转换思路 Date转LocalDateTime和LocalDate都可以通过Date先转换成Instant然后再转换成LocalDateTi
在本教程中,我们将为LocalDate和LocalDateTime类编写自定义序列化程序和反序列化程序。 LocalDateSerializer LocalDateTimeSerializer Loc
从 API 传递的字符串通常遵循格式 yyyy-MM-dd HH:mm:ss.SSS但是当时间戳中有尾随 0 时,它们会被截断,例如 2019-07-16 13:29:15.100转换为 2019-0
我在 Java 8 中使用 spring boot 2.2.6 和 Jackson 2.10.3。我在整个项目中使用 localdatetime 对象。 Jackson 无法正确解析 LocalDat
我有使用年份和一年中的某一天 (1-365/366) 加上一天中的时间的数据,例如 2018-338T14:02:57.47583,而不是年月日。 我正在尝试编写一个输入时间戳的函数,它通过一堆正则表
我正在尝试将以下日期时间字符串解析为 LocalDateTimeObject,但是我无法识别日期时间字符串的格式。 2021 年 10 月 9 日星期六 02:10:23 -0400 Stri
我尝试并失败(或部分成功)为 LocalDateTime 实现扩展功能 这是我的尝试: fun LocalDateTime.isNotBefore(other: ChronoLocalDateTime
我是一名优秀的程序员,十分优秀!