概述TimeZone.getDefault()在Linux中因用户而异
我有一个两个用户configuration的linux框。 我也有这段Java代码:
long time = System.currentTimeMillis(); String millis = Long.toString(time); Date date = new Date(time); System.out.println(\”Current time in milliseconds = \” + millis + \” => \” + date.toString()); TimeZone tz = TimeZone.getDefault(); System.out.println(\”Current time zone: \” + TimeZone.getDefault().getID());
如果我在bash上运行date ,我对两个用户都有相同的结果:
用户1:
$ date Fri Mar 22 10:02:58 PYST 2013
用户2:
如何在C#中获取不同国家的当前时间
用C ++在windows中获取时区
任何人都知道翻译时区描述的来源?
将ISOdate转换为自linux bash中的纪元以来的秒数
在C#中远程设置时区
$ date Fri Mar 22 10:03:22 PYST 2013
但是,如果我运行相同的Java代码,我有:
用户1:
$ java TimeTest Current time in milliseconds = 1363957432669 => Fri Mar 22 10:03:52 PYST 2013 Current time zone: America/Asuncion
用户2:
$ java TimeTest Current time in milliseconds = 1363957456954 => Fri Mar 22 13:04:16 GMT 2013 Current time zone: GMT
所以我想这与java为每个用户configuration的方式有关。
我检查了定义的TZ环境variables,但没有为任何用户定义的TZ 。
关于为什么我为不同的用户在同一个linux机器上获得TimeZone.getDefault()不同值的任何想法?
JVM:
$ java -version java version \”1.6.0_24\” Java(TM) SE Runtime Environment (build 1.6.0_24-b07) Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02,mixed mode)
发行版:
$ cat /etc/issue Red Hat Enterprise linux Server release 5.8 (Tikanga)
TIME_ZONE_informatION结构中的Microsoft时区名称是否经过翻译?
显示UTC而不是EST的本地显示EST的linux服务器
在服务器上设置哪个时区:Etc / UTC或者Etc / Universal?
在MSYS中更改时区
C#BST时区时期(windows与linux)在1971年的差异
这可能与用户的Locale有关。
检查这些变量: http : //linux.dIE.net/man/1/locale
类似的问题/两台机器的解决方案:
两台linux机器设置为UTC
一个JVM报告不正确的时区(例如CET )
另一个正确报告UTC
问题可能是:
错误的机器有这个符号链接: /etc/localtime -> /usr/share/zoneinfo/Europe/Paris
/usr/share/zoneinfo/Europe/Paris包含UTC信息
原因可能是一个简单的cp /usr/share/zoneinfo/UTC /etc/localtime替换/usr/share/zoneinfo/Europe/Paris的内容,而不是覆盖/etc/localtime这是一个符号链接而不是文件!
总结
以上是内存溢出为你收集整理的TimeZone.getDefault()在Linux中因用户而异全部内容,希望文章能够帮你解决TimeZone.getDefault()在Linux中因用户而异所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容