问题描述
我需要实现这样的端点:
@GetMapping("/localdatetime")
public SomeObhject dateTime(@RequestParam("localDateTime") LocalDateTime date) {
我的问题是我应该使用哪种日期类型?
- 本地日期时间
- 分区日期时间
- 偏移日期时间
?
还有什么?
有哪些优点和缺点?
AFAIK 传递日期的最佳方式 - 以 UTC 格式传递它,但它不直接回答我的问题。
解决方法
LocalDateTime 不保留时区信息,因此如果不提供额外的信息 - 时区,就无法转换为准确的时刻。 OffsetDateTime 和 ZonedDatetime 都包含时区信息, ZonedDatetime 包含更多信息,请在 Javadoc 中阅读。如果您的应用程序不需要考虑时区(例如,它是一个用于本地化使用的应用程序,并且所有时间都假定总是在本地时区),那么使用 LocalDateTime 比其他人更简单,而其他人会保留一些冗余信息。但是,如果您确实需要考虑时区,那么您需要保存此信息的两个之一。如果我需要考虑时区,我个人更喜欢使用 ZonedDatetime