Java程序时区设置AsiaShanghai与JVM默认时区GMT+08冲突,如何解决?

2026-05-26 01:150阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计614个文字,预计阅读时间需要3分钟。

Java程序时区设置Asia/Shanghai与JVM默认时区GMT+08冲突,如何解决?

目录+经过排查,发现是JVM的默认时区为+JVM中设置为+在Spring程序中配置了spring.jackson.time-zone=GMT+08,部分时间相差一个小时问题,且是固定的时间差问题。

目录
  • 经过排查,发现是JVM的默认时区为
  • JVM中设置为

在Spring程序中配置了spring.jackson.time-zone=GMT+08时,部分时间相差一个小时问题,且是固定的时间出现了固定的时差问题。

经过排查,发现是JVM的默认时区为

Asia/Shanghai,两者不一致,然后Asia/Shanghai 这个时区并不一定与GMT+08这个时区相等,他们是2种定义标准。

Asia/Shanghai 这个代表的是中国的时区,但在历史中,有国家(包含中国)政策颁布了在1986-1991年等还存在夏令时。

在这样的时间区间,夏季时,会将时间拨快1个小时(即东9区时间),夏季结束时会再次将时间拨回一个小时(即东8区时间)。

所以要保证程序显示的时间没有问题,需要将JVM和spring.jackson.time-zone设置的时区保持一致即可解决问题

JVM中设置为

Asia/Shanghai,经代码调试出现的底层时区调整的测试案例。

阅读全文

本文共计614个文字,预计阅读时间需要3分钟。

Java程序时区设置Asia/Shanghai与JVM默认时区GMT+08冲突,如何解决?

目录+经过排查,发现是JVM的默认时区为+JVM中设置为+在Spring程序中配置了spring.jackson.time-zone=GMT+08,部分时间相差一个小时问题,且是固定的时间差问题。

目录
  • 经过排查,发现是JVM的默认时区为
  • JVM中设置为

在Spring程序中配置了spring.jackson.time-zone=GMT+08时,部分时间相差一个小时问题,且是固定的时间出现了固定的时差问题。

经过排查,发现是JVM的默认时区为

Asia/Shanghai,两者不一致,然后Asia/Shanghai 这个时区并不一定与GMT+08这个时区相等,他们是2种定义标准。

Asia/Shanghai 这个代表的是中国的时区,但在历史中,有国家(包含中国)政策颁布了在1986-1991年等还存在夏令时。

在这样的时间区间,夏季时,会将时间拨快1个小时(即东9区时间),夏季结束时会再次将时间拨回一个小时(即东8区时间)。

所以要保证程序显示的时间没有问题,需要将JVM和spring.jackson.time-zone设置的时区保持一致即可解决问题

JVM中设置为

Asia/Shanghai,经代码调试出现的底层时区调整的测试案例。

阅读全文