Y2K问题

浏览百科全书

Y耳朵2000旧的硬件和软件不能识别2000年以后的日期。他们不能这样做的原因是,在许多数据库中,年份只有两位数;例如,12-11-03而不是12-11-1903。那么,在世纪之交之后,这个日期是1903年还是2003年?每个处理日期的程序都可能有问题。

日期很重要

金融交易经常将数据库记录中的日期与今天或未来的日期相匹配。如果系统没有正确处理日期,账单无法支付,通知无法触发,行动无法采取。在2000年以后,任何不能识别变化的系统都会导致处理未来日期的应用程序输出错误。虽然灾难的警告占了上风,但当一切都说了和做了之后,只发生了几起事故。

修复它是一项艰巨的工作

解决这个“千年漏洞”的方案需要升级硬件以支持四位数的年份,将文件和数据库转换为四位数的年份,并转换所有引用日期的软件。企业有大量的遗留数据文件和数千个访问它们的程序。对于许多较老的应用程序,编写它们的程序员早就不在了,缺乏文档。在许多情况下,源代码都丢失了。即使可以进行更改,测试更改所花费的时间对it人员来说也是繁重的。

只是为了节省两个字节!

这个问题起源于20世纪初的打孔卡。为了将整个订单或客户记录塞进一个有80或90个字符列的穿孔卡片中,年份被缩短为两位数。为什么要浪费两列写"19"明明"19"会持续很长一段时间。当打孔卡系统在20世纪60年代被转换成磁带时,有足够的空间转换成四位数字,懒惰盛行,因为2000年似乎仍然很遥远。在穿孔卡中保存两列(两个字节)是合适的,但在磁带上有足够的存储空间时就不合适了。

问题甚至在2000年之前就出现了

例如,假设一家公司想要删除在过去五年内没有购买过任何东西的客户。程序逻辑将在上一个订单的年份上加上5,并将结果与当前年份进行比较。假设客户上一次订货是在1995年,而当年是1996年。在非y2k兼容的系统中,将5加到95,结果是00,而不是2000。因为96大于00,所以客户记录将被删除。看到数据老化

38年后的另一个约会问题

由于Unix系统中存储日期的方式,2038年提出了另一个挑战2038年问题).

千年虫问题 从20世纪60年代开始,当数据从穿孔卡片复制到磁带记录时,两位数的年份通常是逐字复制的,因为下一个世纪似乎非常遥远。看到3 C的 关于时间 这个会议来自软件生产力小组,这个组织为处理这个棘手的问题提供了必要的培训。(图片由软件生产力组提供) 突出自己的优点 来自Isogon的2000年遵从性软件用于测试运行MVS操作系统的IBM大型机应用程序。(图片由Isogon公司提供) 也许过于戏剧化 在千禧年之前,很多人担心事情会失控。然而,如果世界没有花费数千亿美元改进数千个应用程序,就会出现许多问题。只有几个人。 甚至在千年虫之前 在这个行业中,程序维护一直是一个问题。PROCASE公司的这篇评论是在千年虫之前十多年创作的。PROCASE提供了一种软件,它可以根据程序的源代码绘制流程图,以便使程序易于理解。

你会喜欢的PCMag故事

Baidu
map