在 Java 8 中我应该使用哪个日期类?
Java 8 中有一整套 date 类:
-
java.time.LocalDateTime
; -
java.time.ZonedDateTime
; -
java.time.Instant
; -
java.time.OffsetDateTime
; -
java.sql.Timestamp
; -
java.util.Date
.
我已经跳过了他们的JavaDocs,并注意到所有这些类都包含我需要的所有方法。因此,目前,我可以随机选择它们。但我想为什么有6个单独的类并且是有原因的,每个类都致力于特定目的。
技术信息和要求:
- 输入为 in ,它将转换为这些日期格式之一。
String
- 我不需要显示时区,但是当我比较两个日期时,能够正确比较纽约和巴黎的时间非常重要。
- 精确级别是秒,不需要使用毫秒。
- 所需操作:
- 查找最大/最小日期;
- 按日期对对象进行排序;
- 计算日期和时间(两个日期之间的差异);
- 将对象插入MongoDB并按日期从数据库中检索它们(例如,特定日期之后的所有对象)。
我的问题:
- 为了从性能和可维护性的角度从这四个选项中选择最佳格式,我应该记住哪些方面?
- 有什么理由我应该避免其中一些日期课程吗?