-2

为简单起见,我们假设我们正在讨论一个经典的 Web 应用程序,它具有用 Java 编写的后端、一个 SQL 数据库并通过 REST 进行通信。

我的问题是:java.time在类似数据结构的类(DTO、JPA 实体、模型)中表示某个时间点(例如,发表评论的时间)的最佳类是什么?我已经全部看过了:LocalDateTime, ZonedDateTime, Date, Instant. 尤其是LocalDateTime作为 JPA Entity 中的一个字段,感觉不太对劲。应该使用什么?分区日期时间?偏移日期时间?立即的?“好”旧的 java.util.Date 并java.time仅在需要某些日期计算时将其转换为某个对象?

4

1 回答 1

3

历史上一个明确的、不动的点总是正确地表示为Instant,它是物理时间中的一个点。

在您的场景中,根据提问者的时区不同,这可能特别有意义Instant:例如,如果评论是在五分钟前发布的,则查看该评论的任何用户都应该看到五分钟的时间比当地时间早几分钟。

于 2021-06-05T18:47:31.903 回答