当前位置: 首页 > 知识库问答 >
问题:

Springboot从endpoint调用时获得UTC+1而不是GMT

伯丁雷
2023-03-14

我实际上对从endpoint调用的日期有一个问题:

返回的日期是UTC+1之前的1小时

但数据库中的日期是正确的(UTC+1)

我有以下设置:

main.java:

@SpringBootApplication
@Slf4j
public class Main extends SpringBootServletInitializer
{
  @PostConstruct
  void started() {
    TimeZone.setDefault(TimeZone.getTimeZone("Europe/Paris"));
  }


我已将Hibernate设置为以下时区:

spring.jpa.properties.hibernate.jdbc.time_zone = Europe/Paris

有人知道为什么通过endpoint返回的日期似乎是GMT吗?

共有1个答案

谭研
2023-03-14

vickirk的评论指出问题与杰克逊有关

您需要向JsonFormat注释添加一个时区,如下所示:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yyyy HH:mm:ss", timezone = "Europe/Paris")
@Column(name = "date_creation", nullable = true)
protected Date dateCreation;

相关问题可在以下网址找到:https://stackoverflow.com/A/31838669/5186678

 类似资料:
  • 我有一个JAVA类,它被视为托管bean。下面的代码是它的精简版本: 对recycleObjects(someObject)的调用在从JAVA代码调用时运行良好,但是当我在XPage上的一个名为TestError的按钮中从SSJS调用它时,我得到的消息是“State data not available for/TestError,因为在缓存中没有找到控件树。”按钮中的SSJS代码是: 其中WFS

  • 在php.ini我设置了。重新启动了Apache,中的输出显示了正确的时区(Europe/Amsterdam)。现在当我打印时,我得到的是UTC时间,比我们的本地时间晚2小时。但是当我打印时,我仍然得到UTC时间,而我期望的是本地时间。 的输出是: 如果您能帮我了解当地时间,我们将不胜感激。 更新: phpinfo()的输出为: 所以“date.timezone”是正确的,但与“默认时区”有什么区

  • 问题内容: 我试图根据每个DIV的类别切换网站上某些DIV元素的可见性。我正在使用基本的JavaScript代码片段进行切换。问题在于该脚本仅使用,而JavaScript不支持。不幸的是,我必须使用class而不是id来命名DIV,因为DIV名称是由我的XSLT样式表使用某些类别名称动态生成的。 我知道某些浏览器现在支持,但是由于Internet Explorer不支持,所以我不想走这条路。 我发

  • 编辑:好的。不幸的是,我不得不承认我对Java时间的理解存在严重缺陷,使得这个问题毫无意义。我一直认为System.currentTimeMillis()返回了当地时间。为什么?因为当你用它创建一个Date时,它只包含那个,没有引用时区,但在传递给System.out.println()时仍然打印出当地时间。我从未想过是toString()将(UTC)时间转换为当地时区。:( 我想用Java创建一

  • 版本: 返回一个,其ID为“z”,偏移量为0,默认区域规则。 返回一个,包含ID“utc”和。 例如,在处理时。在这里,我能发现的唯一区别是它的打印方式不同。 我们正在来回地进行代码审查讨论,所以我想这种冲突并不罕见。 它是一个常量(此外,它的偏移量值(0)甚至被缓存)。 由于缺少区域信息,它的开销少了一点。 在UTC时,不需要考虑夏时制时间或历史变化,就像在任何其他时区一样。 因此,对于我迄今为

  • 我正在尝试使用Python、pygame和OOP从头开始构建一个乒乓球游戏(我知道,这不是使用OOP的最佳语言)。当前具有以下类结构: 游戏对象(对象)| |球(游戏对象)| |桨(游戏对象) 注:球扩展游戏对象 当我试图创建一个球,一个错误显示: 超级(gameDisplay)类型错误:超级()参数1必须是类型,而不是pyplay。表面 有人能帮我吗?