【发布时间】:2012-02-14 16:02:56
【问题描述】:
所有 Perl 程序员(希望如此)都知道,调用 Perl 的 localtime 函数的年份值是相对于 1900 的。想知道为什么会这样,我查看了 perldoc for localtime,发现了这个有趣的块:
所有列表元素都是数字,直接来自 C `struct tm'。
然后查看C++ reference for the tm struct,我发现tm_year成员变量被声明为int。
问题:那么,为什么年份值是相对于 1900 而不是完整的四位数年份?有什么历史原因吗?在我看来,即使在计算中存在早期内存限制,一个整数(显然)对于存储全年来说已经绰绰有余了。一定有充分的理由;我很好奇那可能是什么。
【问题讨论】:
-
历史。在 70 年代初期,当事实上的标准被修复时,Y2K 漏洞并不是不言而喻的。在那之后,在不破坏大量代码的情况下更改它为时已晚。