为什么计算机日期最早1970,计算机时间基准——1970.1.1
Unix在1969年诞生之初就采用了一个简单的设计——以离之最近的新年作为计时零点记录流逝的秒数。后来这个计时系统被所有的Unix和Unix-like系统继承了下来。
沈迦勒/编
雨璇/配图
【Q】刘克澄问:为啥程序猿写日子都要换算成和1970-1-1的天数?
【A】
沈迦勒答:人们现在使用的计时系统是公历,计算较为复杂:秒是基本单位,60秒为1分,60分为1小时,24小时是一天…如果计算机内部也使用相同的方式
来计时,
就需要多个变量来分别存放年月日时分秒,不停进位,而且还要处理偶尔的闰年和闰秒以及协调不同的时区。Unix在1969年诞生之初就采用了一个简单的设
计——以离之最近的新年(1970-1-1
00:00:00,公历UTC时间,下同)作为计时零点记录流逝的秒数。后来这个计时系统被所有的Unix和Unix-like系统继承了下来,而且影响
了许多非Unix系统,便于跨平台交流数据。POSIX标准,即可移植操作系统接口(Portable Operating System
Interface of
Unix)推出后,这个时间也被称为POSIX时间。因此在程序中如果时间变量为空、或没有被正确地初始化,只是简单地赋一个0值的话,计算结果便会跳到
1970-1-1;这也是现在的所有操作系统上你无法把时间调到1970-1-1之前的原因。
2001-9-9
01:46:40,Unix时间迎来了第一个Billennium(十亿禧年),即十进制的1,000,000,000。2005-3-18
01:58:31则是Unix时间的光棍节,1,111,111,111。2033-5-18
3:33:20是第二个Billenniumm,然而第三个则不会毫无障碍的来临,在那之前,人们先得解决著名的2038年问题。和本世纪初的千年虫
(Y2K Bug)问题类似,2038年问题(Y2K38
Bug)更隐蔽、更底层、更难解决。计算机内部用来存储时间的32位二进制数中,最高位被用来表示正负符号,所以它能表示的最大数字是2^31-1,即
2147483647, 对应2038-1-19 03:14:07。到这天的凌晨03:14:08,
Unix时间会溢出并变成十进制的-2147483648,也就是1901-12-13
20:45:52,引起和千年虫类似的混乱。这将会影响到所有使用这个计时方式的32位系统及其程序语言。要解决这个问题,最简单的方式是扩展计时的长度
至64位。但愿那时64位系统已成为主流,就可以避免特意去修正这个问题所需要的巨大开销。沈迦勒/编·图灵的苹果
为什么计算机日期最早1970,计算机时间基准——1970.1.1相关推荐
- 计算机日期无法更改吗,电脑时间不能修改怎么办 电脑系统时间总是不对怎么办...
有时候我们的电脑的时间不准,然后想要校正修改,但是发现电脑时间不能修改,这是什么原因造成的呢?小编今天从3个方面分析电脑时间不能修改的原因,进而给出解决问题的教程. 一.系统时间无法修改是什么原因 造 ...
- 计算机日函数,09年计算机等级辅导:日期时间函数
1.DATE 用途:返回代表特定日期的序列号. 语法:DATE(year,month,day) 参数:year为一到四位,根据使用的日期系统解释该参数.默认情况下,Excel for Windows使 ...
- 为什么计算机起始时间是1970年1月1日
1969年8月,贝尔实验室的程序员肯汤普逊利用妻儿离开一个月的机会,开始着手创造一个全新的革命性的操作系统,他使用B编译语言在老旧的PDP-7机器上开发出了Unix的一个版本.随后,汤普逊和同事丹尼斯 ...
- 1970-01-01是什么?为什么计算机起始时间是1970年1月1日
我们是不是也曾见到过或者听说过1970-01-01,而且它好像常常存在于计算机行业,非常常见,从事IT行业的兄弟应该都接触过,那么到底为什么是1970-01-01,而不是其他呢? 其实,1970-01 ...
- 漫话:为什么计算机起始时间是1970年1月1日?
这是我的第 203 期分享 作者 | 漫画编程 来源 | 漫画编程(ID:mhcoding) 分享 | Java中文社群(ID:javacn666) 问题复现 1970-01-01对于开发者来说都是不 ...
- 漫画:为什么计算机起始时间是 1970 年 1 月 1 日?
作者 | 漫话编程 来源 | 漫话编程(ID:mhcoding) 问题复现 1970-01-01对于开发者来说都是不陌生的,有些系统对于时间的处理如果不够好的话,就可能把时间显示成1970-01-01 ...
- 如果恢复计算机系统时间吗,一般的计算机还原系统需要多长时间?
liuguanglei159 有很多方法可以尝试!祝你成功 在Windows XP系统中系统还原要多久,我们可以使用系统附带的"系统还原"功能,通过设置还原点来记录对系统所做的更改 ...
- 计算机二级日期格式,09年计算机二级辅导:指定格式的日期字符串转化成java.util.Date类型日期对象...
09年计算机二级辅导:指定格式的日期字符串转化成java.util.Date类型日期对象 分类:计算机等级| 更新时间:2008-10-16| 来源:教育联展网 将未指定格式的日期字符串转化成java ...
- 科学史专家们竟把中国的算盘当成最早的计算机?这个博物馆为你展示计算机2000年历史
计算机时代 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能. 冯.诺依曼计算机 决定计算机组成:输入.输出.存储器.运算 ...
最新文章
- js判断数据类型是哪种
- android区块链 钱包_区块链研究实验室|从Android调用区块链智能合约
- Resource stopwords not found. Please use the NLTK Downloader to obtain the r
- git 忽略文件不起作用
- 最优化理论与方法(part4)--秩一校正
- 百度之星2019 初赛一 题解
- 【theano-windows】学习笔记十四——堆叠去噪自编码器
- Solr Wiki文档
- 公司新来了个00后测试卷王,老油条表示是真干不过,已被……
- 行内元素(HTML、CSS)
- poj 1035 Spell checker【字符串】
- matlab拟合分析画不出线,lsqcurvefit曲线拟合后,用polt函数画不出拟合的图形
- 清华梦的粉碎——写给清华大学的退学申请
- ddl是什么意思网络语_跟随你大学的流行词语 DDL 你竟还不知道?
- mysql 解决1062报错
- 机器学习中 熵的理解
- Transformer对接公司需求的调研报告
- 心蓝12306订票助手
- Unity报错:Assertion failed on expression: ‘IsMatrixValid(matrix)‘...的解决办法
- chromium45 对应 depot_tools 和 chromium 版本
热门文章
- 用Matlab生成Ornstein-Uhlenbeck过程
- java基础知识(七)-- 泛型(Generics )
- 想知道未来孩子长相?Python人脸融合告诉你
- 【“到此一游”系列】(菜鸡参加“美亚杯” 电子取证大赛感受)
- js修改对象数组⾥的对象名字
- RenderMonkey基本使用方法【转】
- 手机续航能力测试软件,五小时极限测试告诉你荣耀X10续航表现怎么样
- 聊聊我在职场的至暗时刻!
- jQuery笔记——工具函数——jQuery标志
- 指尖江湖鸿蒙抽奖,剑网三:指尖江湖 李忘生竞技场攻略