免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4864 | 回复: 5

Linux时间范围咋回事? [复制链接]

论坛徽章:
0
发表于 2009-06-22 16:44 |显示全部楼层
各位大虾:

搞Linux也有几年了,今天突然发现一个时间问题。

FC 7 X86_32下,时间设置范围只能是1970-2037年。  

这个问题是我手误设置时间才发现的。

date 062216303008.30

直接提示。
date: 无效的日期 “062216303008.30“


从理论上分析,一点问题都没有。

于是,我将时间设置少一点 设置为  date 062216302008.30
直接就成功。
看来时间有限制, 我于是就开始测试, 发现范围是1970 - 2037
windows下却没有这个限制, <或者说限制没有这么大>

我在一个路由器板子上测试, 发现其时间范围为1900 - 3000, 看来也是有限制。

不知道,这个时间范围限制从哪里定义,或者说,为什么有这个限制,

请指点,谢谢。

论坛徽章:
0
发表于 2009-06-22 17:33 |显示全部楼层

所谓的unix 2037年问题

unix 以unix纪元年表示时间,他们的时间是从1970-01-01 00:00:00到现在经历的秒数,
而到约2037某个时刻,内核用32位的值来记录的秒值就溢出了;

论坛徽章:
7
天蝎座
日期:2013-08-16 23:19:32丑牛
日期:2014-01-08 09:20:14寅虎
日期:2014-01-11 11:03:44午马
日期:2014-04-28 11:02:40天秤座
日期:2014-05-16 23:24:24摩羯座
日期:2014-07-20 10:46:04卯兔
日期:2014-08-08 15:21:41
发表于 2009-06-22 17:55 |显示全部楼层
还有这种事?

论坛徽章:
0
发表于 2009-06-22 17:56 |显示全部楼层
那2037年年以后怎么办呢?linux有没有解决方法呢?扩充表示得位数?

论坛徽章:
0
发表于 2009-06-22 22:13 |显示全部楼层
由于linux的时间是一个32位的值表示的,所以会有溢出的一天。
设计人员设想到了2037年,所有的pc都会换成64位的了。

不过我觉得可以修改,没必要从1970年开始,可以设置为1980年或者2000年时应该就够了

论坛徽章:
0
发表于 2009-06-23 09:19 |显示全部楼层
2008年1月19日星期六是一个值得注意的日期,它标志了Y2K38 bug 30年倒计时开始。Y2K38是指Unix系统时间使用的32位整数将在2038年溢出。从1970年1月1日开始,到2038年超过2^31,确切的时间是世界标准时2038年1月19日星期二凌晨03:14:07
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP