- 0
- 0
- 约1.47千字
- 约 2页
- 2026-01-30 发布于北京
- 举报
大家一定还记得上个世纪末给IT业界带来不少的Y2Kbug吧,很不幸的是,我们很快
又另一个和时间有关的bug——Y2038问题。
专家警告说,Y2038bug将于2038年1月19日(星期二)03:14:07am(GMT)正式爆
发,届时人们对千年虫问题的可能将一一实现,比如网络工作不正常,脱离轨
道,型号较老的电脑软件软硬件无法正常工作等。
什么是Y2038bug
Time_t是C/C++等编程语言在代表/日期和时间的一种数据类型。Time_t实
际上是一秒数的整数,当它的值为0时,代表的时间是1970年1月1日12:00:
00;当Time_t=60时,则表示1970年1月1日12:01:00,依此类推。
所有32位电脑系统都用带符号32位整型来Time_t的值,也就是说Time_t只能
用31位二进制数来表示(第一位用来表示正负号),而其最大值转换为十进制是
2147483647,换算成日期和时间刚好是2038年1月19日03:14:07am(GMT),而这一
秒过后,Time_t的值将变成-2147483647,代表的是1901年12月13日8:45:52pm,
这样32位软硬件系统的日期时间显示就都乱套了。另外,无法接受Time_t为负值的其他
功能也将返回错误。
举个实际的例子来说,登陆上Yahoomessenger,给好友发个消息,恩没问题,现在
把系统时间更改为2038年1月19日03:14:07am,此时如果再发消息Yahoomessenger
就将。
为何担忧?
也许有人觉得2038年还早着,无需担心这个问题。不幸的是,上世纪60年代的程序
开发人员也类似的错误想法,并由此导致了Y2K问题,给全球IT业带来数十亿的
损失。
要知道时间对于许多电脑程序来说都非常重要,操作系统、数据库程序、电子表格软件、
实时控制系统等无不涉及到时间。因此须在Y2038bug前做好充足的准备。
尽管到2038年,桌面PC和服务器基本上都将升级到64位甚至128位,但仍会有许
多使用中的32位甚至更古老的系统。即使是在32位系统盛行的今天,大多数嵌入式系统
仍是8位或16位的,而小型嵌入式系统的数量其实比台式机。
如何应对?
Y2038问题和Y2K一样难缠,其中一种解决办法就是用位数的数据类型来日
期和时间。如果使用64位数据类型,Time_t最大可以表示公元292000000000年,是宇
宙估计的20倍,最起码看到这篇文章的各位都不会再遇到什么YXXXX问题了。
目前对于Y2038bug的影响有多大还存在争论,但有一点可以肯定的是:有备无患。
相信我们能像克服Y2K问题那样解决Y2038问题。
大家也可以把自己电脑的系统时间年份改成2038看看效果,运行一下各种软件
您可能关注的文档
最近下载
- 2025年部编版四年级下册《道德与法治》课本习题参考答案 .pdf VIP
- 《尾矿库智能化建设技术规范》(征求意见稿).pdf
- W(9988.HK)AI开启阿里云新成长(阿里巴巴深度之三暨GenAI系列报告之39).pdf VIP
- 如何经营好大客户.ppt VIP
- 统编版二年级语文下册期末非纸笔试卷二( 含答案).pdf VIP
- 建设工程质量保修书-河北省.doc VIP
- 建设项目全过程跟踪审计表格综合类模板.doc VIP
- 融合威胁情报-洞察及研究.docx VIP
- 许继500kW光伏并网逆变器与监控 后台通信规约V1.2.pdf VIP
- 2025至2030中国儿童矫正鞋垫行业市场占有率及投资前景评估规划报告.docx VIP
原创力文档

文档评论(0)