gpt4 book ai didi

Java - 日期、格式、时区和 Spring Boot 默认值

转载 作者:搜寻专家 更新时间:2023-11-01 03:32:46 25 4
gpt4 key购买 nike

我有一个带有日期字段的简单 Java 对象:

@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date date;

当我使用调试器调查日期时,我看到:

Wed Jun 14 00:00:00 BST 2017

但是一旦我用 Spring boot controller 返回它,我得到:

"date": "2017-06-13 23:00:00"
  1. 造成差异的原因是什么?
  2. 为什么 Java 将日期视为 BST
  3. Java Date 类是否包含时区信息或只是长格式的普通时间戳?
  4. 在将 DTO 序列化为 JSON 时,Spring boot 默认使用 UTC 格式吗?

最佳答案

java.util.Date没有时区信息(只有 long 时间戳),但它在 toString() 中使用系统的默认时区方法 - 您可以找到有关此的更多信息 here (正如评论中已经建议的那样)。

只需检查 TimeZone.getDefault() 的值.它可能是 Europe/London - 由于伦敦现在处于夏令时,这个时区的简称(由 Date.toString() 使用)是 BST .

如您的输出所示,Spring 可能正在使用 UTC (因为 2017-06-13 23:00:00UTC 中是 2017-06-14 00:00:00BST 中)。

关于Java - 日期、格式、时区和 Spring Boot 默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44545359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com