我使用的是OSX10.6.8上的Emacs最近版本。
我很难理解为什么当英格兰比洛杉矶早8小时的时候,洛杉矶会是UTC+8。应该是UTC-8。当涉及时区设置时,在Emacs中继中是否有一个错误,其中正负反置?
(setenv "TZ" "UTC-8")给出了加州洛杉矶的错误日期/时间--也就是说,提前了16小时。
(setenv "TZ" "UTC+8")给出了加州洛杉矶的正确日期/时间。
发布于 2013-11-05 14:22:45
这并不是Emacs特有的,也不是一个bug。这是POSIX :)
TZ的含义在IEEE 1003.1,基本定义,8.3其他环境变量中指定。
… 扩展格式(对于值没有a作为第一个字符的所有TZ )如下: stdoffset[dst偏移,开始/时间,结束/时间] 其中: 性病和dst 指示不少于三个字节,也不超过{TZNAME_MAX},这些字节是标准(std)或替代(dst -such )时区的指定。只需要std;如果缺少dst,则该替代时间不适用于此区域设置。这些字段中的每一个都可以以引用或未引用的两种格式中的任何一种形式出现: … 偏移 指示添加到本地时间以到达协调世界时的值。抵消的形式如下: …
UTC+8并不是指“UTC +8小时”,而是指“时区,它比UTC落后8小时”,或者更准确地说,指必须将本地时间8小时加到的时区才能得到UTC。
洛杉矶落后于协调世界时8小时,所以你需要增加8小时到洛杉矶当地时间才能得到世界协调时的时间,这给了你TZ=UTF+8。TZ=UTF-8给出了上海的当地时间,比UTC早8小时,所以你必须在当地时间加上-8小时才能得到UTC。
https://stackoverflow.com/questions/19781762
复制相似问题