Java 如何正确设置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使用的时区应该是操作系统中指定的时区。(对于具有JDK 1.4版和Microsoft Server 2003的其他服务器,我没有发现此问题)。

任何想法将不胜感激。

回答:

你可以将此参数传递给JVM

-Duser.timezone

例如

-Duser.timezone=Europe/Sofia

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

以上是 Java 如何正确设置JVM TimeZone 的全部内容, 来源链接: utcz.com/qa/429309.html

回到顶部