如何处理无法在int中存储时间?

use*_*041 2 c c++ java time

在某些语言中,时间存储为从纪元开始的秒数并存储在int中(如果我错了,请纠正我).因此,我们最终会遇到无法将当前时间存储在int中的点,因为没有足够的位来保存时间.

现在我知道这是在路上,但现在还不值得思考吗?

无论如何,我真正的问题是,我应该总是使用64位来存储时间,还是操作系统可能会处理的事情?

jjs*_*jjs 5

如果您想在将来合理地处理日期,您的担忧是有效的.使用无符号的32位整数,您可以存储最多2 ^ 32秒,这有点超过136年.

要回答您的问题,是否应使用64位或32位来存储秒数取决于您的应用程序的需求.如果要为普通应用程序存储日历约会,则32位可能已足够.另一方面,如果您正在构建时间机器,使用64可能是一个更安全的赌注.

这实际上是一个众所周知的问题,类似于Y2K问题.有关详细信息,请参见http://en.wikipedia.org/wiki/Year_2038_problem.

  • 好吧,你可以使用基本的64位时间机器在未来5年内跳过,并在那里购买更好的时间机器.到那时价格可能会下降很多. (5认同)
  • 对于一台体面的时间机器来说,64位是不够的,如果你想要在宇宙的热死中嗤之以鼻,你需要512位. (2认同)