加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Windows服务器中的时区无法正常工作

发布时间:2020-12-15 04:09:41 所属栏目:Java 来源:网络整理
导读:如果在 Windows机器上运行此代码,它的工作正常: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println(sdf.format(new Date())); 它显示日期时间与时钟相同,但如果我在Windows Server上运行,它会显示-2小时的时间. 我尝
如果在 Windows机器上运行此代码,它的工作正常:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(new Date()));

它显示日期&时间与时钟相同,但如果我在Windows Server上运行,它会显示-2小时的时间.

我尝试将时区设置为,

TimeZone timeZone = TimeZone.getTimeZone("Europe/Vienna");
sdf.setTimeZone(timeZone);
Then,it shows same as clock time.

我怀疑的是,为什么在Windows Server中默认不占用时钟时区.

解决方法

它应始终采用正在运行的计算机的时区,但在某些情况下,它会失败,如报告的 here和 here.如果您确定服务器时区正确但Java使用不同的时区,则可以强制使用默认时区.从命令行中选择:

-Duser.timezone="YOUR_TIME_ZONE_HERE"

或by code.您也可以尝试使用Oracle的Timezone Updater Tool.

要查看Java使用的时区:

System.out.println(TimeZone.getDefault());

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读