java - 如何正确设置 JVM 时区

标签 java jvm windows-server-2008 timezone java-5

我正在尝试运行 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 使用的时区应该是操作系统中指定的时区。 (我没有发现其他具有 JDK 1.4 和 Microsoft Server 2003 版本的服务器存在此问题)。

任何想法都将受到高度赞赏。

最佳答案

你可以把这个参数传给JVM

-Duser.timezone

例如

-Duser.timezone=Europe/Sofia

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

关于java - 如何正确设置 JVM 时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2493749/

相关文章:

java 字符串缓冲区声明

java - 使用 spray 服务分层静态内容

java - 如果我们关闭 JVM,sql 连接会自动关闭吗?

Java JDBC 不是重用 String 值吗?

java - java中的公钥和私钥不正确

java - Guice Multibinder 用于具有特定值的注释

java - Jenkins无法启动工作的32位JVM

visual-studio - 在 Windows Server 2008 R2 和 Windows 7 上开发 .NET Web 应用程序的主要优缺点是什么?

windows-server-2008 - 以编程方式将 IP 添加到 Server 2008 防火墙规则

windows-server-2008 - windows server 2008防火墙,可以备份设置吗?