UNIX 时间 16 亿秒纪念

2020年09月15日

2020年9月13日本是十分普通的一天,然而对于程序员来说,这天的某个节点却是一个重要的里程碑。因为按照 UNIX 时间的表示方式,在此节点后,世界正式进入 1600000000 时代。

UNIX 时间(或称 POSIX 时间)是 UNIX 或类 UNIX 系统使用的时间表示方式:从UTC1970年1月1日0时0分0秒起至现在的总秒数,不考虑闰秒(由于 UTC 包括了闰秒,但在 POSIX 时间中闰秒会被忽略以提供一种简便且兼容的计算时差的方法。因此 POSIX 时间转换后不一定是 UTC,尽管它也存在)。在多数 UNIX 系统上 UNIX 时间可以通过 date +%s 指令来检查。

具有里程碑意义的时间节点则是 2020/9/13 12:26:40 UTC(北京时间 2020/9/13 20:26:40),还记得此时的你在做什么吗?注重仪式感的程序员特意换上了有纪念意义的T恤,还买来蛋糕庆祝:

由于时差,国外程序员更多的是表示此时自己还在睡觉,为错过这一刻后悔不已。当然,我们可以通过截图进行回顾:

Hacker News 上的这篇帖子"Happy 1600M epoch second"特意挑了 1600000000 这个时间节点进行发布(稍有偏差,具体可点此可查看),以作纪念。

不过对于程序员来说,这种“奇奇怪怪”的纪念节点未来也有不少,列举几个如下(UTC):

1610612736 (0x60000000) - 2021-01-14 08:25:36
1618033989 (黄金比例) - 2021-04-10 05:53:09
1666666666 - 2022-10-25 02:57:46
1700000000 - 2023-11-14 22:13:20
1800000000 - 2027-01-15 08:00:00
1879048192 (0x70000000) - 2029-07-18 05:49:52
1900000000 - 2030-03-17 17:46:40
2000000000 - 2033-05-18 03:33:20
2147483647 (2^31-1, 即 2038 年问题) - 2038-01-19 03:14:07

对于 2038 年问题,目前的解决方案是把系统由 32 位转为 64 位系统。因为在 64 位系统下,此时间最多可以表示到292,277,026,596年12月4日15时30分08秒。

展开阅读全文
12 收藏
分享
加载中
精彩评论
预判一下,盲猜有人会说发这个有什么意义吗?这都值得发新闻?谁在乎?又水了一篇blahblah……
2020-09-15 08:40
12
举报
这个有什么意义吗?这都值得发新闻?谁在乎?
2020-09-15 09:17
9
举报
可以算是娱乐新闻,哈哈
2020-09-15 09:18
4
举报
这个有什么意义吗?这都值得发新闻?谁在乎?
2020-09-15 09:07
3
举报
因为那帮人坚持所谓的原则,不过自从systemd之后就会发现,他们也没啥原则。
2020-09-15 16:39
2
举报
最新评论 (27)
17是 2023-11-15 06:13:20
3年多一点 没什么意思 又不是跨千年````
2020-09-21 09:16
0
回复
举报
老外真是闲得D疼
> new Date(1600000000000)
2020-09-13T12:26:40.000Z
> new Date(1700000000000)
2023-11-14T22:13:20.000Z
2020-09-15 17:24
0
回复
举报
您好,请问unix、linux、win的时间是用什么存储的?最大能到多少?会有千年虫的BUG吗?
2020-09-15 14:46
0
回复
举报
认真看文章,2038年问题
2020-09-15 16:45
0
回复
举报
操作系统本身不记录时间,主板有个计时的,叫啥忘了,反正有个大纽扣电池,专门为主板掉电以后,给一些单片机芯片供电
2020-09-15 22:28
0
回复
举报
发这个有什么意义吗?这都值得发新闻?谁在乎?又水了一篇
2020-09-15 14:04
1
回复
举报
发这个有什么意义吗?这都值得发新闻?谁在乎?
2020-09-15 11:37
1
回复
举报
发这个有什么意义吗?这都值得发新闻?谁在乎?
2020-09-15 11:16
1
回复
举报
这个有什么意义吗?这都值得发新闻?谁在乎?
2020-09-15 10:31
1
回复
举报
时间戳为什么不是无符号整数? 这样32位时间戳可以用到下世纪了
2020-09-15 10:02
0
回复
举报
这个时间戳是从1970年1月1日0时0分0秒算起的,往前的时间怎么办,还不得考虑使用负数。
2020-09-15 10:54
1
回复
举报
为什么要考虑往前
2020-09-15 11:53
0
回复
举报
如果要考虑往前, 那时就不应该把1970年定义成0. 即使当时那些年用过负值, 现在也不用考虑1970年以前了, 差距50年的软件早就断代了, 现在让负值表示2038年以后更有意义.
2020-09-15 12:16
0
回复
举报
你觉得1970年前是很久远的事?
要知道1970年出生的人还没死呢,我如果要记录他们的出生日期,建立电子档案,怎么记录?
人类大量的历史记录如需要数字化保持都存在大量的小于1970年的间点,怎么就没意义了呢?
2020-09-24 13:34
0
回复
举报
你要抬杠就没意思了, 我也说过起始时间可以设早点, 但负值的设定仍然很怪
2020-09-24 14:09
0
回复
举报
不是抬杠,而是出现负值才是最合理的,因为可以表示负无穷,不管往前往后都可以表示任意时间点,如果不够再升级cpu位数,做软件设计要考虑扩展性,而不是主观上的奇怪。当年千年虫问题是因为硬件限制了想象二用两位来表示年份,现在硬件允许的前提下,为什么要局限于使用正数来表示日期呢?
2020-09-28 15:34
0
回复
举报
因为那帮人坚持所谓的原则,不过自从systemd之后就会发现,他们也没啥原则。
2020-09-15 16:39
2
回复
举报
多少人觉得自己写的系统能活到2038年?
2020-09-15 09:51
0
回复
举报
开源系统是迭代的,别说2038年了,就是死后一百年还在活跃都不奇怪,看看latex到现在多少年了,核心虽然稳定了,但是依然是重要工具
2020-09-15 11:52
0
回复
举报
292,277,026,596年,2900亿年,我天
2020-09-15 09:32
0
回复
举报
更多评论
27 评论
12 收藏
分享
返回顶部
顶部