为了账号安全,请及时绑定邮箱和手机立即绑定

如何正确设置JVM TimeZone

如何正确设置JVM TimeZone

慕的地10843 2019-08-27 15:39:09
如何正确设置JVM TimeZone我正在尝试运行Java程序,但它采用默认的GMT时区而不是OS定义的时区。我的JDK版本是1.5,操作系统是Windows Server Enterprise(2007)Windows指定了一个中央时区,但是当我运行以下程序时,它会给我一个GMT时间。import java.util.Calendar;public class DateTest{     public static void main(String[] args)     {         Calendar now = Calendar.getInstance();         System.out.println(now.getTimeZone());         System.out.println(now.getTime());     }}这是输出sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]Mon Mar 22 13:46:45 GMT 2010请注意,我不想从应用程序设置时区。我希望JVM使用的时区应该是操作系统中指定的时区。(我没有发现其他具有1.4版JDK和Microsoft Server 2003的服务器的问题)。任何想法都将受到高度赞赏。
查看完整描述

3 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

你可以传递JVM这个参数

-Duser.timezone

例如

-Duser.timezone=Europe/Sofia

这应该可以解决问题。设置环境变量TZ也可以在Linux上实现。


查看完整回答
反对 回复 2019-08-27
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

您还可以使用以下代码在代码中设置默认时区。

TimeZone.setDefault(TimeZone.getTimeZone("UTC"));

给你的

 TimeZone.setDefault(TimeZone.getTimeZone("Europe/Sofia"));


查看完整回答
反对 回复 2019-08-27
?
SMILET

TA贡献1796条经验 获得超4个赞

上面接受的答案是:

-Duser.timezone="Europe/Sofia"

完全不适合我。当我没有关于参数的引号时,我只能成功更改我的时区:

-Duser.timezone=Europe/Sofia


查看完整回答
反对 回复 2019-08-27
  • 3 回答
  • 0 关注
  • 884 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信