`

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

 
阅读更多

[程序员段子] 1927年12月31日午夜一秒谜案 [图片]

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

StackOverflow是一个程序员向的问答网站,广大程序员们在上面交流经验、提问答疑,三天前,一位名叫Freewind的用户发布了下面这个问题
[程序员段子] 1927年12月31日午夜一秒谜案

我在用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日发生了变化。

请看这里 。(网页截图如下)
[程序员段子] 1927年12月31日午夜一秒谜案
(1928年1月1日0点0分,当地时间由地方平时(Local Mean Time) 改为北京时间/中国标准时间)

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

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

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

分享到:
评论

相关推荐

    午夜商店.apk.1

    午夜商店.apk.1

    XBS午夜剧场开关,自动切换

    在IT行业中,XBS午夜剧场开关是一款专为网吧设计的自动化播放系统,它主要用于在特定时间自动切换到预设的影视内容,特别是在深夜时段,为顾客提供不间断的娱乐体验。这一工具对于网吧业主来说非常实用,因为它可以...

    午夜桌球3.SISX

    午夜桌球3.SISX NOKIA手机软件

    15.(地图数据篇)百度午夜蓝地图瓦片数据爬取--java代码.zip

    在本项目中,我们主要探讨的是如何使用Java编程语言来爬取百度地图的“午夜蓝”风格的地图瓦片数据。这个过程涉及到网络爬虫技术、地图坐标系统、以及图像处理等多个IT领域的知识点。 首先,我们需要理解“地图瓦片...

    27.(leaflet篇)leaflet接入百度午夜蓝地图、深色地图.zip

    在本教程中,我们将深入探讨如何使用Leaflet.js库来接入百度午夜蓝地图和深色地图。Leaflet是一款轻量级的JavaScript库,专为Web地图应用设计,以其易用性和灵活性而受到广泛欢迎。而百度地图则提供了丰富的地图服务...

    Scratch恐怖游戏作品:小猪佩奇的午夜时光

    游戏背景: 最近佩奇与乔治热衷于跳泥坑,我们实在没有更好的办法自己解决,所以...这是一个恐怖游戏,干货满满,欢迎转载,记得注明原作者。此后仍有各热门或有趣游戏,请关注原作者,且点赞加收藏,记得推荐好友。

    午夜骑:午夜骑

    "午夜骑:午夜骑" 这个标题和描述似乎并未直接提供具体的IT知识点,但考虑到标签为"Python",我们可以推测这是一个与Python编程相关的项目。"Midnight-ride-master"作为压缩包的文件名,可能暗示着这是一个项目的主...

    午夜

    "午夜"这个标题可能是指一个项目或者代码库的名称,这通常是为了纪念某个特殊的时刻或与项目的主题有关。然而,由于提供的信息有限,我们只能推测"午夜"可能代表了某种夜间模式功能、计时器应用或者是与时间处理相关...

    gps-time.js:小型实用程序,用于在GPS纪元(1980年1月6日午夜)和Unix纪元(1970年1月1日午夜)之间转换时间,并考虑了leap秒

    gps-time.js 小型实用程序,用于在GPS纪元(1980年1月6日午夜)和Unix纪元(1970年1月1日午夜)之间转换时间,并考虑了leap秒。 在所有时间输入上添加恒定数量的leap秒并不是一件容易的事! 对于任何两次,它们之间...

    Discuz! 午夜怪谈

    这个压缩包可能包括了安装文件、数据库脚本、模板文件、插件和必要的配置文件,用于在服务器上搭建并运行“午夜怪谈”主题的论坛。 综合上述,我们可以理解“Discuz! 午夜怪谈”是一个基于Discuz! X6.0.5版本的特殊...

    GBase数据库中的日期时间类型详解 1.doc

    DATE值的范围是从公元1年1月1日至公元9999年12月31日,以儒略日的形式表示,起始于1899年12月31日午夜。负的DATE值表示公元前的日期,例如-1代表1899年12月30日。DATE类型是整数,可以参与算术运算,如计算平均值或...

    AOS午夜凶灵1.761

    【午夜凶灵】是《战锤:西格玛时代》中的一个阵营,以其独特的战术和规则在桌面战棋游戏中独树一帜。这个阵营属于死亡大阵营的分支,拥有特殊的机制和能力,使得玩家在组建殓骨骸军军队时能够体验到与众不同的战斗...

    近年-近年学年三年级数学上册第七单元年、月、日测试卷北师大版(最新整理).pdf

    一年有12个月,其中7个大月(1月、3月、5月、7月、8月、10月、12月)各有31天,4个小月(4月、6月、9月、11月)各有30天。 2. **闰年规则**:通常情况下,每4年有一个闰年,闰年全年有366天,2月有29天。但非世纪年...

    SqlDateTime溢出该怎么解决

    在SQL Server中,DateTime类型的字段有特定的范围,即从1753年1月1日的午夜开始到9999年12月31日的最后一秒。然而,在.NET Framework中,DateTime类型的时间范围是从公元1年1月1日的午夜开始到9999年12月31日的最后...

    初中语文文摘文苑午夜的麦场

    初中语文文摘文苑午夜的麦场 本文摘文苑午夜的麦场探讨了诗歌的艺术性和内涵,通过语言的描绘和比喻,展现出诗人阿凌对生命、自然和情感的探索和体验。 首先,诗歌开篇便提到“谁是谁手中的一颗麦粒”,这里的...

    午夜城市BLOG网页模板

    【午夜城市BLOG网页模板】是一个专门为博客设计的网页模板,它采用了深色调的主题,营造出一种深夜城市的独特氛围,旨在为用户带来沉浸式的阅读体验。这个模板适合那些喜欢在静谧夜晚分享故事或者感悟的博主使用。...

    认识年月日知识点.pdf

    1. 一年有12个月,其中大月有31天,包括1月、3月、5月、7月、8月、10月和12月,共7个月。小月有30天,包括4月、6月、9月和11月,共4个月。特殊的是2月,平年有28天,闰年有29天。 2. 关于闰年的判断:通常每4年有一...

    午夜:午夜:冷酷,无情的敌对面。 最初为Sp​​ookyJam 2018制作

    午夜重要提示:午夜正在彻底重新编写,以提高稳定性和性能! 有关重写的更多信息将很快发布。 The Midnight是由Cryptic Mushroom开发的mod,它增加了新的,神秘的和令人恐惧的维度供探索。 这是黑暗的维度; 唯一的...

    红色午夜俱乐部网页模板

    "红色午夜俱乐部网页模板"是一个专为夜间娱乐场所如酒吧、俱乐部或音乐活动设计的网页模板。这个模板以其独特的红色调和夜店氛围的元素,为网站赋予了强烈的视觉冲击力,旨在吸引并留住访客的目光。在设计网页时,...

Global site tag (gtag.js) - Google Analytics