如何处理无法在整数中存储时间
How to handle not being able to store time in an int?
在某些语言中,时间存储为纪元的秒数,并存储在 int 中(如果我错了,请纠正我)。因此,我们最终将达到无法将当前时间存储在 int 中的点,因为没有足够的位来保存时间。
现在我知道这是未来的路,但是,现在不值得考虑吗?
无论如何,我真正的问题是,我应该始终使用 64 位来存储时间还是操作系统可能会处理?
如果您想处理未来合理的日期,您的担忧是有效的。使用无符号 32 位整数,您最多可以存储 2^32 秒,即 136 年多一点。
为了回答您的问题,是否应使用 64 位或 32 位来存储秒数取决于应用程序的需求。如果要存储普通应用程序的日历约会,32 位可能就足够了。另一方面,如果你正在建造一台时间机器,使用 64 可能是一个更安全的选择。
这实际上是一个众所周知的问题,类似于Y2K问题。有关更多详细信息,请参阅 http://en.wikipedia.org/wiki/Year_2038_problem。
现代语言使用长数据类型(即.java和.net)以毫秒为单位存储时间。
当纪元(1970-01-01 00:00 GMT)的秒数不再适合 32 位整数时,某些平台/编程语言会遇到问题。这并不适用于所有平台,也不适用于所有编程语言。
如果您使用 64 位整数来计算秒数,那么您将安全多年。此外,如果您使用这 64 位来计算毫秒数,那么您仍然可以在很长一段时间内使用。我根本不期望有任何问题,因为即使您只需要九位数字来写年份,您也是安全的。
相关文章:
- 添加存储在向量中的大整数的函数出现问题
- 查找存储在二叉搜索树的所有非叶子中的数据总和?(返回整数的独立递归函数
- 整数数据如何以位为单位存储在内存中?不是右对齐吗?
- 当我尝试将范围值存储为 8 位的固定宽度整数时,它向我显示一些其他值 [ASCII]
- 将大数字(10-12 位数字)存储在无序映射中<字符串,整数>
- GMP-将64位整数存储在mpz_t/mpz_class中,并返回64位整数
- 如何从字符数组C++中提取2个整数并将它们存储在2个变量中(初学者)
- 从文件中读取后,将分号分隔的整数存储到数组中
- 将25个甚至整数存储到一个名为intlist的整数阵列中,然后在屏幕上显示数组,并在屏幕上显示名为fivintegers
- 如何将整数存储在字符阵列中
- 将 10 个整数存储到数组C++中时出现问题
- 将多个整数存储在字符串中
- 将多个整数存储到数组中并打印出来
- 如何将用户输入的 5 个整数存储在数组中并打印出整个数组
- 在 c++ 中将随机生成的整数存储为变量
- 如何将整数存储在字符数组的单个索引中
- C++ 读取文件并将整数存储在向量中.最终占用的驻留内存大约是实际文件大小的 5 倍
- 如何将.txt文件中的特定整数存储在结构数组中
- 将文件中的64*64整数存储到2D数组中
- C++将多个整数存储在一个int变量中