首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何正确设置JVM TimeZone

如何正确设置JVM TimeZone
EN

Stack Overflow用户
提问于 2010-03-23 00:03:25
回答 6查看 251.2K关注 0票数 148

我正在尝试运行一个Java程序,但它采用默认的GMT时区,而不是操作系统定义的时区。我的JDK版本是1.5,操作系统是Windows Server Enterprise (2007)

Windows指定了Central时区,但当我运行以下程序时,它给出的是GMT时间。

代码语言:javascript
复制
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());
    }
}

以下是输出

代码语言:javascript
复制
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 Server2003的服务器上没有发现这个问题)。

任何想法都将受到高度的感谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-03-23 00:10:39

您可以将此参数传递给JVM

代码语言:javascript
复制
-Duser.timezone

例如

代码语言:javascript
复制
-Duser.timezone=Europe/Sofia

这应该能起到作用。在Linux上,设置环境变量TZ也可以做到这一点。

票数 236
EN

Stack Overflow用户

发布于 2016-05-12 19:23:04

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

代码语言:javascript
复制
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));

致你的

代码语言:javascript
复制
 TimeZone.setDefault(TimeZone.getTimeZone("Europe/Sofia"));
票数 73
EN

Stack Overflow用户

发布于 2013-12-05 03:31:35

上面被接受的答案是:

代码语言:javascript
复制
-Duser.timezone="Europe/Sofia" 

对我来说并不是很有效。只有在参数周围没有引号的情况下,我才能成功地更改时区:

代码语言:javascript
复制
-Duser.timezone=Europe/Sofia
票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2493749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档