在不同的编程语言中,日期与系统日期不匹配



你好,我有一个问题,日期。Java和PHP返回的日期与我的系统日期不匹配。

这是我的系统设置日期和时间

Date = 05-13-2013 10:58 AM 
Time Zone Info = (UTC+05:00) Islamabad, Karachi

Java

DateFormat df = new SimpleDateFormat("MM-dd-yyyy hh:mm a");
System.out.println(df.format(new Date()));
TimeZone zone = TimeZone.getDefault();
System.out.println(zone.getDisplayName());
System.out.println(zone.getID());
结果:

2013-05-13 12:58 AM

中央标准时间

美国/Mexico_City

PHP

echo ini_get('date.timezone')." ======= ".date_default_timezone_get()."<hr>";
echo date("m-d-Y h:i:s A", mktime());
结果

UTC ============== UTC

05-13-2013 06:02:21 AM

我尝试了所有事情,但无法解决这个问题,有些人建议在php.ini中设置时区来解决这个问题,但我希望编程语言应该选择系统时区和日期&时间。

我需要JAVA的解决方案Java代码是否可以选择系统的日期和时间(Timezone),而不是一些配置设置?(因为我想我的代码应该是透明的,它应该运行在任何服务器上任何地方在世界上的任何时区,这必须是系统)

如果上面不可能配置时区设置(请注意,我正在运行独立的应用程序,以及JBOSS上的一个应用程序,它可以调度任务)。

编辑:

我为成功的结果所做的努力运行java类打印日期

独立

javac MyCurrentDate.java
java -Duser.timezone="GMT+5" MyCurrentDate

正确打印

Jboss 我有添加 -Duser。run.bat

中的timezone参数

set JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx1124m -XX:PermSize=256m -Duser.timezone="GMT+5"

但我再次寻找全局解决方案 (java代码的每个实例应该返回正确的日期作为系统日期)

很少有人推荐时区更新工具。但是我相信它只是更新了JDK和JRE的时区列表,并没有这样的选项来更改当前时区。http://www.oracle.com/technetwork/java/javase/tzupdater自述- 136440. - html

您使用的是哪个操作系统?我在Windows上看到过类似的区域设置问题,本地系统帐户的区域设置与域用户的区域设置不同。

因此,作为服务运行的进程与由域用户启动的进程具有不同的区域设置。

我的解决方案是使用mstsc /console登录服务器控制台并更改服务器的时区。

编辑:我必须说,我是一名Java开发人员,所以我的主要工作不是服务器维护,这个问题发生在不久前。据我回忆,我的经历是在Windows 2003服务器上进行的,它是由该公司的IT管理部门安装的。

当我通过远程桌面作为用户登录时,我可以将时区更改为正确的,但是作为服务运行的应用程序服务器即使在重新启动后仍然使用旧的(错误的)时区。

我必须通过控制台登录(可能作为本地管理员),然后才能为应用程序服务器设置正确的时区。

相关内容

  • 没有找到相关文章