随手小记:为何没有asia/beijing时区?

郑昀@玩聚SR 20090116

引子

@WebLeOn对时区问题发出了疑问:

comment-open.gif

Asia/Beijing 这个时区是消失了么? 大约1小时 ago

@tinyfool 对啊,我就奇怪为什么北京时间就要用上海和成都。。。 大约1小时 ago

@tinyfool @CatChen 我所疑惑的就是为什么不统一一下呢,很容易产生困惑噢 大约1小时 agocomment-close.gif

开发者都知道

想必做开发的,尤其是PHP或Java的,很多年前就都会注意到这个情况:时区中没有asia/beijing,只有asia/shanghai和asia/chongqing。以前看到不少这种抱怨的帖子,毕竟和心理预期不一样,还会导致程序出错或程序员浪费时间调试。大家会猜测这是不是老外故意和北京捣乱。我认为不是。

投诉BUG

有国人愤而投诉Ubuntu

comment-open.giffor i'm from P.R.China and BeiJing is our capital city, we are always using BeiJing time zone. please fix it.comment-close.gif

甚至投诉Sun说“The Time Zone id name for PRC is wrong”:

 
 
Ubuntu认为:首先这个问题不归他。其次维护这个将会是易错的,而且容易与其他软件不兼容。
Sun的回答是“It is not wrong”。对他给出的理由,还是有说服力的:

comment-open.gif首先,我想确认这一点在JDK诞生之前,国际标准时区就没有Asia/Beijing,只有Asia/Shanghai或Asia/Chongqing?(One thing I want to be confirmed here is, before JDK's birth, the international standard TimeZone name for PRC is Asia/Shanghai or Asia/Irkutsk? not Asia/Beijing?)

其次,在1986年到1991年期间,中华人民共和国采用了夏时制。为了能够处理任何给定的时间格式,时区就需要知道是否历史上使用夏令时。daylight就是表明这一点的字段。因此,在JDK中使用daylight字段是不对的。comment-close.gif

但根据他后面说的,我认为sun似乎有必要更改时区,毕竟sun认为时区的api应该支持同时代的时区。Asia/Shanghai和Asia/Chongqing代表中国,都是国民党时期的老黄历了:

comment-open.gifsun的策略是只支持同时代(contemporary)的时区,而不是历史上(historical)的某一个时区。TimeZone和DateFormat code只应该对于当前的时区工作。最后,Fixed in JDK1.2 FCS-M, but the value is Asia/Shanghai, better one is Asia/Beijing.comment-close.gif

 
 
anyway,有没有asia/beijing时区,开发都没影响,保持各种系统和软件的兼容可能更重要吧。
谁知道更多呢?请留言。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值