java 日志时间错误

java时区错误解决方法问题参考链接电脑上所有java应用、项目时间都不对。核心业务系统启动后日志时间和当前系统时间差11个小时30分钟,电脑用的是云桌面系统有严格的权限控制,找相关人和同事弄了几次没好;都知道是时区问题,但没注意到系统桌面右下角的提示。最后解决方法很简单,先说解决方法。(出现问题的主机是无法连接公网的,文件也无法外传,图片都是照片;)解决方法在windows…

大家好,又见面了,我是你们的朋友全栈君。

java 时区错误

电脑上所有 java 应用、项目时间都不对。 核心业务系统启动后日志时间和当前系统时间差11个小时30分钟,电脑用的是云桌面系统有严格的权限控制,找相关人和同事弄了几次没好;都知道是时区问题,但没注意到系统桌面右下角的提示。最后解决方法很简单,先说解决方法。

(出现问题的主机是无法连接公网的,文件也无法外传,图片都是照片;)

解决方法

1.第一种: 在 windows 桌面右下角点击时间选择正确的时区即可
在这里插入图片描述
2. 第二种: 直接在启动java应用时添加 -Duser.timezone=Asia/Shanghai
在这里插入图片描述
刚开始用的这个方法,后来每次启动一个 IDEA/JBoss/MyEclipse/Jetty 等都要设置这个变量,好烦。还是得去看看怎么回事

问题

我先用 jvisualvm 看了一下 发现系统属性最后一项是 user.timezone=America/Bahia 而别人的都是 user.timezone=GMT+08:00user.timezone=Asia/Shanghai
然后我写了一段代码看 java 应用的 env 和 properties ,及 时间是从 jdk 哪个类来获得的。
看testTimeZone方法
看testTimeZone方法,断点进去后最后到一个关键方法getSystemTimeZoneID()
(下面的图片是修改正确后的拍照截图,没拍错误的)
在这里插入图片描述
getSystemTimeZoneID()走完后 zoneID 就确定了,而getSystemTimeZoneID() 是个 native 方法,调试运行的话会直接到 String 类 使用 byte[] 和指定的 编码字符集确定值。网上搜了一下 源码 大概明白了 jvm 获取时区的策略,
TimeZone 这个链接就有简要说明。现在可以确定不是 java 或 jdk 的问题而是系统问题。 在搜索的过程中有人说是注册表的问题,去按照相应位置看看,设置也正常
在这里插入图片描述
在这里插入图片描述
然后就在页面点了点链接 “无法识别您当前的时区” ,点了我的桌面右下角一看,也有这问题。点击选择正确的时区后,重启java应用,使用 jvisualvm 查看,系统变量设置为user.timezone=GMT+08:00时间也正常了。
问题最后解决的很简单,只是一开始没去系统时间那点点看。
至于为什么错误的会是 user.timezone=America/Bahia 等找到完整的 native 方法 getSystemTimeZoneID() 搭个环境,再打断点看看。

参考链接

https://www.jb51.net/os/windows/293509.html
http://www.xitongtiandi.net/wenzhang/win7/2015-10-05/3300.html
https://blog.51cto.com/2005713/698032
https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6456628
还有一个链接是 getSystemTimeZoneID() 源码,现在找不见了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127352.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月9日 下午4:40
下一篇 2022年4月9日 下午4:40


相关推荐

  • 看完让你彻底理解 WebSocket 原理

    看完让你彻底理解 WebSocket 原理1 前言最近有同学问我有没有做过在线咨询功能 同时 公司也刚好让我接手一个 IM 项目 所以今天抽时间记录一下最近学习的内容 本文主要剖析了 WebSocket 的原理 以及附上一个完整的聊天室实战 Demo 包含前端和后端 代码下载链接在文末 2 WebSocket 与 HTTPWebSocke 协议在 2008 年诞生 2011 年成为国际标准 现在所有浏览器都已经支持了 WebSocket 的最大特点就是 服务器可以主动向客户端推送信息 客户端也可以主动向服务器发送信息 是真正的双向平等对

    2026年3月18日
    2
  • idea创建maven项目时一直在 Process Running[通俗易懂]

    idea创建maven项目时一直在 Process Running[通俗易懂]今天打算用idea写个maven项目时,创建到最后就一直在加载。等了大概20分钟,还在Process Running,我就等不下去了,各种查资料,最终解决了这个问题,写篇笔记,以防后期所需。解决方案:1、设置maven的配置 File—>Settings(Ctrl+Alt+S)—>Build—>Build Tools—>Maven—&…

    2022年6月13日
    56
  • 使用WinHex从GPT分区恢复RAW数据的时间分析与实践探讨

    使用WinHex从GPT分区恢复RAW数据的时间分析与实践探讨

    2026年3月16日
    2
  • CC2530之OLED12864程序详解

    CC2530之OLED12864程序详解暂时先贴上程序 我再整理整理 include code tab h defineLCD SCLP0 4 串行时钟输入 defineLCD SDAP0 5 串行数据输入 defineLCD RSTP0 6 复位输入端 defineLCD DCP0 7 数据 命令控制 defineXLevel

    2026年3月26日
    3
  • java按位异或的运算是,深入理解按位异或运算符

    java按位异或的运算是,深入理解按位异或运算符参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。即:0^0=0,1^0=1,0^1=1,1^1=0按位异或的3个特点:(1)0^0=0,0^1=10异或任何数=任何数(2)1^0=1,1^1=01异或任何数-任何数取反(3)任何数异或自己=把自己置0按位异或的几个常见用途:(1)使某些特定的位翻转例如对数10100001的第2位和第3位翻转,则…

    2022年6月6日
    46
  • 安全多方计算(MPC)从入门到精通:Frutta语言

    安全多方计算(MPC)从入门到精通:Frutta语言

    2022年4月3日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号