为什么80%的码农都做不了架构师?>>>   

虽说是程序员问的,不过内容和编程本身其实并没什么太大关系,请各位听我细细道来。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给出了如下答复——

这是因为上海的时区在12月31日发生了变化。

请看 这里。(网页截图如下)

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

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

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

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

转载于:https://my.oschina.net/maomi/blog/191758

【程序员轶事】程序员的1927年12月31日午夜一秒谜案相关推荐

  1. 必要转载 1927年12月31日午夜一秒谜案

    [程序员段子] 1927年12月31日午夜一秒谜案 [图片] 虽说是程序员向,不过内容和编程本身其实并没什么太大关系,请各位听我细细道来. StackOverflow是一个程序员向的问答网站,广大程序 ...

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

    来源:http://news.cnd8.com/news/48702.htm 虽说是程序员问的,不过内容和编程本身其实并没什么太大关系,请各位听我细细道来.StackOverflow是一个程序员向的问 ...

  3. 1927年12月31日午夜一秒谜案

    虽说是程序员向,不过内容和编程本身其实并没什么太大关系,请各位听我细细道来. StackOverflow是一个程序员向的问答网站,广大程序员们在上面交流经验.提问答疑,三天前,一位名叫Freewind ...

  4. Java永远的伤-中国1927年12月31日午夜

    话说在中国1927年12月31日午夜发生了一件神奇的事情,中国时间瞬间增加了5分52秒, 不管你信不信,反正我信了!不信你看下边代码! /** Licensed to the Apache Softw ...

  5. 12月31日写成13月1日引发重大 Bug,程序员新年就要被“祭天”?

    作者 | 梦依丹 出品 | CSDN(ID:CSDNnews) 元旦假期,宅家免不了要扫地拖地.这不,小白鲸扫地机器人竟然选择了"罢工". 不少用户反馈小白鲸拖地机器人指示灯一直异 ...

  6. 12月31日起涉线上支付的微信小程序需设置订单中心页

    微信公众平台运营中心发布公告:为进一步规范小程序交易生态.提升用户购物体验.满足用户在有交易的小程序中便捷查看订单信息的诉求,自 2022 年 12 月 31 日起,对于有"选择商品/服务- ...

  7. 2012.2 今天是2012年4月12日星期四,编写程序,输入今天开始到12月31日之间的任意日期

    //今天是2012年4月12日星期四,编写程序,输入今天开始到12月31日之间的任意日期,//输出那一天是星期几.例如 输入:5 20 (5月20),输出:sunday//monday tuesday ...

  8. 【历史上的今天】12 月 10 日:世界上第一位程序员诞生;Ada 语言发布;第一人称射击游戏的开拓者

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 12 月 10 日,在 120 年前的今天,瑞典国王和挪威诺贝尔基金会首次颁发了诺贝尔奖.根据诺贝尔 ...

  9. 极客日报第4期:爆料 华为鸿蒙手机 OS 开发者 Beta 版预计 12 月 18 日开放;程序员的幸福指数是如何下降的?

    互联网快讯 1.虎牙员工自曝被HR抬出公司,虎牙公开道歉,当事人回应称未达成一致 近日,针对"虎牙员工自曝被HR抬出公司"事件,虎牙回应称,对此欠妥行为,公司真诚致歉并深刻复盘.目 ...

最新文章

  1. .net core 17
  2. 在AngularJS中读取查询参数的最简洁方法是什么?
  3. CodeForces - 346A Alice and Bob(数论+博弈)
  4. SAP Spartacus CmsComponentConnector
  5. 前端学习(1301):gulp建立任务csso和less
  6. 【CodeForces - 305C】Ivan and Powers of Two(思维,STL,set,优先队列)
  7. 20172327 2018-2019-1 《程序设计与数据结构》第五周学习总结
  8. 2018--Linux面试题
  9. 打java包需要对应服务器么_java打war包、部署服务器
  10. 阿帕奇,StringUtil工具类,各种常用字符串的处理
  11. Convert Sublime Text 2/3 to Licensed Version
  12. 计算机网络(网络编程)
  13. 工程师一定要有 “Owner 意识”
  14. wifi的html页面,笔记本怎么设置wifi
  15. bootstrap-tagsinput操作标签对象,实现从表格中选人和移除
  16. 播布客 视频教学文件下载方法
  17. “北上广曹”商标被抢注,商标过期后企业可以抢注吗?
  18. web前端工程师都做什么工作
  19. php排版工具下载,论文自动排版工具下载
  20. WiFi语音、VoLTE以及下一代移动语音服务

热门文章

  1. webpage not available是什么意思_MySQL很想啊,为什么还要有noSQL?
  2. HAOI2014 走出金字塔
  3. asp.net mvc 4 AntiForgery 提供的防伪标记适用于用户“”,但当前用户为“XX” 问题处理记录...
  4. jquery 鼠标经过显示 信息小卡片
  5. 删除DataTable中列重复的行
  6. 程序员的十种级别 看看自己属于哪个级别?
  7. 宝塔部署项目报Warning: require(): open_basedir restriction in effect的解决方案
  8. oracle sql语句中包含‘’ 的解决方法
  9. Delphi的“Invalid pointer operation“异常的解决办法
  10. laravel-admin 关闭debug模式导致异常信息到页面的排查