时间的尽头会发生什么?

时间的尽头会发生什么?

我很好奇为什么使用有符号整数值来保存 Unix 时间。显然,使用无符号整数更有意义,因为时间不能倒退,因此时间为负值是不可能的。然而,2038 年 1 月 19 日,Unix 时间将溢出,正如我们许多人所知,这将是时间的终结。我们将从 2,147,483,647 变为 -2,147,483,648...不好。

那么,为什么要使用有符号整数?当时间即将结束时,对此实施修复有多困难?

答案1

OpenBSD 不久前从 32 位时间值转移到 64 位时间值,这为时间结束提供了一些喘息空间。此修复的难度取决于 Unix 及其支持程度(以及距离 2038 年时间移动的程度)。

% date -r $((2**31))
Tue Jan 19 03:14:08 GMT 2038
% date -r $((2**51))
Mon Jun 19 13:54:08 GMT 71358665

相关内容