嗨,我遇到了约会问题。Java 和 PHP 返回的日期与我的系统日期不匹配。
这是我的系统设置日期和时间
Date = 05-13-2013 10:58 AM
Time Zone Info = (UTC+05:00) Islamabad, Karachi
爪哇
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 年 5 月 13 日上午 12:58
中部标准时间
美国/墨西哥城
PHP
echo ini_get('date.timezone')." ======= ".date_default_timezone_get()."<hr>";
echo date("m-d-Y h:i:s A", mktime());
结果
UTC =============== UTC
2013 年 5 月 13 日上午 06:02:21
我尝试了所有方法但无法解决这个问题,有人建议在 php.ini 中设置时区来解决这个问题,但我希望编程语言应该选择系统时区和日期和时间。
我需要 JAVA 解决方案 Java 代码是否可以选择系统的日期和时间(时区),而不是一些配置设置。(因为我希望我的代码应该是透明的,它应该在世界任何地方的任何服务器上运行任何时区,必须是系统的)
如果无法配置时区设置(请注意,我正在运行独立应用程序以及 JBOSS 上的应用程序,它会安排任务)。
编辑:
我为成功运行打印日期的java类所做的尝试。
独立
javac MyCurrentDate.java
java -Duser.timezone="GMT+5" MyCurrentDate
正确打印
Jboss我已经添加了-Duser.timezone参数run.bat
设置 JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx1124m -XX:PermSize=256m -Duser.timezone="GMT+5"
但我再次寻找全局解决方案(java代码的每个实例都应返回系统日期的正确日期)
很少有人推荐 Timezone Updater Tool。但我相信它只会更新 JDK 和 JRE 的时区列表,并且没有更改当前时区的选项。 http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html