unix2038问题是什么

小水晶 2007-03-30 02:54:46
这期程序员上看到说64位是否能解决unix2038问题,请问这个问题是什么问题?我在网上找了好久也没搜到相关的具体解释.
...全文
279 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
小水晶 2007-04-02
  • 打赏
  • 举报
回复
谢谢大家
yecheng_110 2007-03-30
  • 打赏
  • 举报
回复
http://www.chinaunix.net/jh/23/883837.html

UNIX操作系统中的时间
UNIX及Linux的时间系统是由「新纪元时间」Epoch开始计算起,单位为秒,Epoch则是指定为1970年一月一日凌晨零点零分零秒,格林威治时间。
目前大部份的UNIX系统都是用32位元来记录时间,正值表示为1970以後,负值则表示1970年以前。我们可以很简单地计算出其时间领域(当前几乎所有操作系统都假定 1 天 = 24 × 60 × 60 = 86400 秒):
2^31/86400(s) = 24855.13481(天) ~ 68.0958(年)
1970+68.0958 = 2038.0958
1970-68.0958 = 1901.9042
时间领域为[1901.9042,2038.0958], 这就是所谓的UNIX 2038 BUG

在一些64位元的平台上,例如Digital Alpha、SGI、Sparc等等,则用64位元来表示时间。
2^63/86400 ~ 1E14(天) ~ 2.92E11(年)
大约是292亿年,这样就无需担心了。不过虽然到2038年时,大部分目前32位元或更低位元的计算机将被64位元或更高位元的计算机所替代,不过对那些依然在服役的32位元或更低位元的计算机依然需要处理该问题。
yecheng_110 2007-03-30
  • 打赏
  • 举报
回复
UNIX现在表示时间的方式只能到2038年

2,161

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 UNIX文化
社区管理员
  • UNIX文化社区
  • 文天大人
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧