如何正确设置JVM时区
我试图运行一个Java程序,但它采用的是默认的GMT时区而不是操作系统定义的时区。 我的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使用的时区应该是OS中指定的时区。 (我没有发现与JDK和Microsoft Server 2003版本1.4的其他服务器的这个问题)。
任何想法将不胜感激。
你可以通过JVM这个参数
-Duser.timezone
例如
-Duser.timezone=Europe/Sofia
这应该可以做到这一点。 设置环境变量TZ也可以在Linux上实现。
您还可以使用以下代码在代码中设置默认时区。
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
给你
TimeZone.setDefault(TimeZone.getTimeZone("Europe/Sofia"));
上面接受的答案:
-Duser.timezone="Europe/Sofia"
没有完全为我工作。 当我没有引用参数时,我只能成功更改我的时区:
-Duser.timezone=Europe/Sofia
链接地址: http://www.djcxy.com/p/18759.html
上一篇: How to set a JVM TimeZone Properly
下一篇: How to make an unaware datetime timezone aware in python