当前位置: 首页 > 面试题库 >

Java 如何正确设置JVM TimeZone

陆海阳
2023-03-14
问题内容

我正在尝试运行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中创建的GUI应用程序,我有以下内容: 一个JFrame,设置为最小大小为(300,200) 一个JSplitPane,其中包含: 在左侧,最小大小为(100,0)的JScrollPane(包含JTree)(我只想将宽度限制为200) 在右边,一个最小大小为(200,0)的JPanel 在以下情况下,尺寸不会给我带来任何问题: 向左调整JSplitPane的大小(到JScrollP

  • 我正试图在我的Fedora 22上安装MATLAB。最后,我得到一个错误 应用程序遇到意外错误,需要关闭。您可能需要尝试重新安装产品。更多信息可以在 /tmp/mathworks_root.log找到 当我查看mathworks_root.log文件时,我发现在安装步骤中未正确设置Java Home Java Home /tmp/mathworks_32206/sys/java/jre/glnxa

  • 问题内容: 我在设置布局时遇到一些问题。(不要介意按钮的大小,我只想正确地了解布局)。 Here’s my code: 谁能帮助我了解布局的工作原理? 我一直在观看很多视频,并尝试过不同的布局,但仍然无法正确完成。告诉我是否使用了正确的布局,或者是否应该更改布局 。 问题答案: 如 该答案中所建议的那样,可以为左部分提供所需的全部控制。如果您愿意为简单起见而牺牲一些控制权,则可以在a里面放两个面板

  • 问题内容: 我不时看到有关连接数据库的问题。 大多数答案不是我做的方式,否则我可能只是无法正确获得答案。无论如何; 我从未考虑过,因为我的工作方式对我有效。 但是这里有个疯狂的想法;也许我做错了所有,如果是这样的话;我真的很想知道如何使用PHP和PDO正确连接到MySQL数据库并使其易于访问。 这是我的做法: 首先,这是我的文件结构 (向下精简) : index.php 在最顶部,我有。 load

  • 问题内容: 我有一个关于mysql时区的怪异问题。 在我的网站配置文件中,我这一行设置了时区: 有趣的是,如果我在此之后添加另一行,例如: 执行该代码后,时间将正确显示。 但是,在其他一些查询中,我在表中插入行,这些表的列名为date,默认为CURRENT_TIMESTAMP。 这样插入行: (“会话”表的列默认为CURRENT_TIMESTAMP) 但是插入到数据库中的值仍指向服务器的时区:((

  • 问题内容: 遵循OnlyOffice帮助中心的说明,将创建由浏览器声明为无效的安全证书,因为它是自签名的。 目的是在适用于NextCloud的Docker上使用OnlyOffice的服务器,该服务器已在另一台服务器上正常运行。 当前,已在说明建议的目录中创建证书: 我已经按照所有给定的步骤进行操作,但是它不起作用。 有没有办法使用LetsEncrypt代替自签名证书? 我不是IT管理人员,我是一个