我想验证一下我对JSR310类用例的理解是否正确,下面是一个类图,以及我如何看待它们:
Database (UTC)
||
/
OffsetDateTime (used in persistence or transmission, databases and XML)
||
/
Instant (used in business logic, for date time calculations)
||
/
ZonedDateTime <-- ZoneId (used in presentation layer, requiring the client zoneId)
||
/
LocalDateTime (used in presentation layer, obtained from ZonedDateTime)
||
/
Front-end
我的不确定性与ZonedDateTime和LocalDateTime有关,因为据我所知,它们都适合于表示层,尽管LocalDateTime没有时区或偏移。
在ZonedDateTime处理了所有DST转换和异常之后,它的LocalDateTime应该发送到前端吗?我不发送一个ZonedDateTime前端,因为它有额外的信息,如时区?
thanks in advance
JSR310是Java的Java规范。它提供了在Java中进行日期和时间操作的类。包中的主要类是:
LocalDate
:表示没有时间(年、月、日)的日期LocalTime
:表示没有日期的时间(小时、分钟、秒、纳秒)LocalDateTime
:表示不带时区的日期和时间(结合LocalDate和LocalTime)ZonedDateTime
:表示具有时区 的日期和时间Instant
:表示时间点(类似于java.util.Date)
当你只需要表示日期时,你应该使用LocalDate
;当你只需要表示时间时,你应该使用LocalTime
;当你需要同时表示日期和时间但不需要时区时,使用LocalDateTime
;当你需要同时表示日期和时间时,使用ZonedDateTime
;当你需要表示时间点时,使用Instant
。