【问题标题】:Facing the time bomb in computers? [closed]面对计算机中的定时炸弹? [关闭]
【发布时间】:2015-07-22 05:53:17
【问题描述】:

这是关于使用int 存储自 1970 年 1 月 1 日以来的秒数的时间表示。

使用这种表示的程序何时会面临定时炸弹?发生这种情况时应该如何处理?

【问题讨论】:

  • 请分享代码以及你做了什么?
  • 我希望通过 system.currentmilliseconds 能够得到 int,但我无法理解定时炸弹 (q?)
  • 我格式化并改写了您的问题。更改了标签。

标签: time year2038


【解决方案1】:

今天是 2015 年。大约自 1970 年 1 月 1 日以来的秒数是

(2015 - 1970) * 365,25 * 24 * 60 * 60 = 1.420.092.000

那是 45 年的秒数。

一个unsigned int(32位)可以存储值

4.294.967.295

这给我们留下了

2.874.875.295 seconds ~ 90 years to go from now on

我们还有一些时间。

如果使用signed int,请参考此link(感谢PM的评论)。

signed int可以存储

2.147.483.647

这给我们留下了

727.391.647 ~ 23 years to go from now on, i.e. 2038.

因此这个问题的名称是:2038 年问题

也就是说,它可以在我们退休之前出现。

有什么问题,请联系this link on SO

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 2015-09-09
    • 2021-03-06
    相关资源
    最近更新 更多