代码之家  ›  专栏  ›  技术社区  ›  Mahmoud Saleh

在Centos上获取java中的日期不正确?

  •  3
  • Mahmoud Saleh  · 技术社区  · 14 年前

    大家好 我有一个使用spring框架的j2ee应用程序 在联机服务器上调试时(centos) 当试图通过打印 new Date(); 对象 它检索GMT-6中的时间,尽管当通过终端获取服务器时间时 命令日期是以GMT时间(实时)检索的,所以我想知道GMT-6是从哪里来的,为什么会发生这种奇怪的行为?

    3 回复  |  直到 14 年前
        1
  •  1
  •   darioo    14 年前

    对我来说,这听起来像是一个地区问题。更具体地说,这不是问题,只是Java处理不同时区/区域设置的方式。

    使用来自 this article :

    Properties p = System.getProperties();
    Enumeration keys = p.keys();
    while (keys.hasMoreElements()) {
      String key = (String)keys.nextElement();
      String value = (String)p.get(key);
      System.out.println(key + ": " + value);
    }
    

    您可以看到Java如何解释您的环境。

    如果您更改了CentOS的时区/区域设置,Java应该接受这个更改并相应地显示时间。

    但听起来有点过分了 customizing date format 基于区域设置可能是您需要的。

    不同的应用程序可能会以不同的方式输出相同的日期。

        2
  •  0
  •   matt b    14 年前

    也许在应用程序中的某个地方,默认时区更改为 TimeZone.setDefault(..) ?

        3
  •  0
  •   Mahmoud Saleh    14 年前

    重启apache、tomcat后问题就解决了。。。但仍然不知道为什么会发生这种行为。