我需要实现如下端点:
@GetMapping("/localdatetime")
public SomeObhject dateTime(@RequestParam("localDateTime") LocalDateTime date) {
按日期从数据库中查询smth并返回给客户机。
我的问题是我应该使用哪种日期类型?
本地日期时间
分区日期
偏移日期时间
?
还有别的吗?
有哪些优点和缺点?
afaik传递日期的最佳方式是以utc格式传递,但它不能直接回答我的问题。
我需要实现如下端点:
@GetMapping("/localdatetime")
public SomeObhject dateTime(@RequestParam("localDateTime") LocalDateTime date) {
按日期从数据库中查询smth并返回给客户机。
我的问题是我应该使用哪种日期类型?
本地日期时间
分区日期
偏移日期时间
?
还有别的吗?
有哪些优点和缺点?
afaik传递日期的最佳方式是以utc格式传递,但它不能直接回答我的问题。
1条答案
按热度按时间6vl6ewon1#
localdatetime不保留时区信息,因此如果不提供其他时区信息,就无法转换为精确的时间点。offsetdatetime和ZoneDateTime都包含时区信息,ZoneDateTime包含更多信息,请在javadoc中阅读。如果您的应用程序不需要考虑时区(例如,它是一个用于本地化使用的应用程序,并且所有时间都假定始终在本地时区),那么使用localdatetime比其他方法更简单,而且其他方法将保留一些冗余信息。但是如果你确实需要考虑时区,那么你需要其中一个保存这个信息。如果我需要考虑时区,我个人更喜欢使用ZoneDateTime