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()); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |