`

程序员的1927年12月31日午夜一秒谜案

 
阅读更多
虽说是程序员向,不过内容和编程本身其实并没什么太大关系,请各位听我细细道来。

StackOverflow是一个程序员向的问答网站,广大程序员们在上面交流经验、提问答疑,三天前,一位名叫Freewind的用户发布了下面这个问题:




我在用Java编写一段比较两个字符串时间间隔的程序,然而当我比较“1927-12-31 23:54:07”和“1927-12-31 23:54:08”这两个时间时,输出结果却不是1……而是353。

当我把两个时间分别往后调整1秒,变成“1927-12-31 23:54:08”和“1927-12-31 23:54:09”,结果就又是1了!——可为什么那两个时间的结果,却是353呢?


面对这一诡异的问题,网友们很快追问,“你的区域(Locale)设置是什么?这可能是个区域问题/和当地夏令时之类的东西有关。”

楼主很快附上了Java版本号和区域设置:


sun.util.calendar.ZoneInfo[id="Asia/Shanghai",
offset=28800000,dstSavings=0,
useDaylight=false,
transitions=19,
lastRule=null]



(……没错,Freewind君,似乎是一位魔都死程。不知道这里有没有人认识这位老兄?)

在这份追加信息出现仅仅两分钟之后,StackOverflow站上的问答狂人Jon Skeet给出了如下答复


1928年1月1日0点0分,当地时间由地方平时(Local Mean Time)改为北京时间/中国标准时间)

简单地说,在1927年末的最后那一个午夜,时钟被往回拨了5分52秒。所以“1927-12-31 23:54:08”这一秒,事实上,发生了两次,而看起来在计算当地时间时,Java将其视为了后面那一个时间点,于是就产生了这一差别。

这正是时区世界的奇妙与不可思议啊。


在StackFlow网民们纷纷膜拜Jon Skeet的神速之时,其他程序员也以测试的方式验证了这一结果的正确——美国时间木有这个问题。看来,当一枚程序员,有时真的需要上通天文、下知地理啊……


以上 转载   gongx je
  • 大小: 112.4 KB
  • 大小: 82.6 KB
分享到:
评论

相关推荐

    2004-2010年历年程序员试题.doc

    2004 年11月程序员上午题 2004 年11月程序员下午题 2005年5月程序员考试试题上午试卷 2005年5月程序员考试试题下午试卷 2005 年11月程序员考试试题上午试卷 2005 年11月程序员考试试题下午试卷 2006年5月...

    程序员2006年第4期PDF.rar

    程序员2006年第4期PDF.rar

    2021年前端程序员的年终工作总结.docx

    "2021年前端程序员的年终工作总结" 通过对2021年前端程序员的年终工作总结的分析,我们可以总结出以下几个重要的知识点: 1. 软件研发:在软件研发方面,前端程序员学习了许多重要的知识点,如面向对象语言、ASP...

    软考程序员2017年上下真题,答案讲解

    软考程序员2017年上下真题,答案讲解。 软考程序员2017年上下真题,答案讲解

    程序员2011年05期

    程序员2011年05期 程序员2011年05期 程序员2011年05期 程序员2011年05期

    程序员2010年第三期

    程序员2010年第三期程序员2010年第三期程序员2010年第三期程序员2010年第三期程序员2010年第三期程序员2010年第三期程序员2010年第三期程序员2010年第三期

    程序员2010年第四期

    程序员2010年第四期程序员2010年第四期程序员2010年第四期程序员2010年第四期程序员2010年第四期程序员2010年第四期程序员2010年第四期程序员2010年第四期

    雷军 我的十年程序员生涯.doc

    雷军在《我的十年程序员生涯》中回顾了自己的编程生涯,分享了自己的编程经验和感悟。以下是雷军分享的知识点: 1. 编程热爱:雷军认为,编程需要热爱写程序,热爱电脑世界的美妙。只有热爱写程序的人,才能把事情...

    java程序员的日记

    是一位台湾程序员写的,很实在.不是技术书,大家可以休闲时看看

    程序员2006年第9期PDF.rar

    程序员2006年第9期PDF.rar

    程序员2010年第一期

    程序员2010年第一期程序员2010年第一期程序员2010年第一期程序员2010年第一期程序员2010年第一期程序员2010年第一期程序员2010年第一期程序员2010年第一期程序员2010年第一期

    程序员2005年至2011年历年试题分析与解答

    软考必备 程序员2005年至2011年历年试题分析与解答

    程序员2010年第二期

    程序员2010年第二期程序员2010年第二期程序员2010年第二期程序员2010年第二期程序员2010年第二期程序员2010年第二期程序员2010年第二期

    程序员2010年第10期.pdf

    程序员2010年第10期.pdf 程序员(英文Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、高级程序员、...

    程序员2010年11

    程序员之家始建立于2011年1月31日,是服务于广大程序员群体的专业技术网站。程序员之家网站上有大量的技术文章、教学视频下载、源代码下载,以及优秀图书推荐。可供大家学习。 程序员之家技术论坛为广大技术爱好者...

    程序员2014年第12期

    《程序员》杂志2014年第12期,清晰扫描版。

    程序员专用 编程输入法

    标题中的“程序员专用编程输入法”指的是专门为程序员设计的特殊输入法工具,旨在提升编码效率。这类输入法通常具有以下特点: 1. **快捷代码输入**:程序员输入法能够通过快捷键、组合键或者自定义短语来快速输入...

    软考初级程序员2000年-2019年考试真题以及模拟题

    发布的是中国计算机技术与软件专业技术职业资格考试,简称“软考”的考试真题,考试科目为初级程序员,是程序员级别最基本的职业资格考试。资源中包含2000年-2019年上下半年的考试真题,附加多套模拟题。 上述内容...

    程序员的数学1,(日)结城浩著;管杰译 ,P232

    程序员的数学1,(日)结城浩著;管杰译 ,P232 人民邮电电出版社

Global site tag (gtag.js) - Google Analytics