系统中有个啥1970年1月1日的时间。那这个时间又是啥来来历呢,怀着好奇宝宝的心理我有在网上查阅了一番得到如下解释:
1.可以简单的这样认为:UNIX系统认为1970年1月1日0点是时间纪元,所以我们常说的UNIX时间戳是以1970年1月1日0点为计时起点时间的。这个解释是懒人最爱^_^
2.这个比较科学
最初计算机操作系统是32位,而时间也是用32位表示。32位能表示的最大值是2147483647。另外1年365天的总秒数是31536000,2147483647/31536000 = 68.1,也就是说32位能表示的最长时间是68年,而实际上到2038年01月19日03时14分07秒,便会到达最大时间,过了这个时间点,所有32位操作系统时间便会变为10000000 00000000 00000000 00000000,也就是1901年12月13日20时45分52秒,这样便会出现时间回归的现象,很多软件便会运行异常了。
到这里,我想问题的答案已经出来了:因为用32位来表示时间的最大间隔是68年,而最早出现的UNIX操作系统考虑到计算机产生的年代和应用的时限综合取了1970年1月1日作为UNIX TIME的纪元时间(开始时间),至于时间回归的现象相信随着64为操作系统的产生逐渐得到解决,因为用64位操作系统可以表示到292,277,026,596年12月4日15时30分08秒,相信我们的N代子孙,哪怕地球毁灭那天都不用愁不够用了,因为这个时间已经是千亿年以后了。
分享到:
相关推荐
JavaScript中的new Date().valueOf()方法是一个非常有用的技术点,它可以帮助我们获取当前时间点的时间戳,即从1970年1月1日0时0分0秒到当前时间点的所有秒数。这个概念在IT行业里极为重要,尤其在Unix和Linux系统中...
2. **2038年问题的由来**:1970年1月1日至2038年1月19日03:14:07 UTC之间的秒数恰好是2147483647。过了这个时间,时间戳将回滚到负值,导致错误。 3. **解决方案**: - **升级系统**:将32位系统升级为64位系统,...
时间戳转换(时间戳:自 1970 年1月1日(00:00:00 )至当前时间的总秒数。) #include #include int main(int argc, const char * argv[]) { time_t t; struct tm *p; t=1408413451; p=...
1. **日期处理**:在编程中,日期通常以Unix时间戳(自1970年1月1日以来的秒数)或特定的日期对象表示。为了显示万年历,需要将这些时间戳转换为可读的日期格式,并考虑到闰年、闰月等因素。 2. **农历算法**:农历...
时间戳转换(时间戳:自 1970 年1月1日(00:00:00 )至当前时间的总秒数。) #include #include int main(int argc, const char * argv[]) { time_t t; struct tm *p; t=1408413451; p=gmtime(&t); char s...
说起计算机中的时间,还有一些比较有意思的事,比如我们经常听到的Unix时间戳,UTC时间,格林威治时间等,从表示上来讲他们基本属于同一个东西,因为他们的时间表示都是从1970年.1月.1日开始到现在的秒数,到这有人...
8. **地球日历史**:1970年4月22日在美国首次庆祝地球日,到2012年已经举行了43次,提醒我们关注地球日的历史和其持续的重要性。 9. **环保短语**:教案提供了几个环保行动的短语,如控制污染、捡拾垃圾和植树,...
中国航天日设立于2016年,每年的4月24日,是为了纪念1970年中国第一颗人造卫星“东方红一号”成功发射的日子。这一事件标志着中国正式迈入航天大国的行列。设立这个节日旨在传承航天精神,普及航天知识,激发公众...
标题"Gerber_蝶_2024-01-02.zip"揭示了这是一份2024年1月2日创建的Gerber文件集合,可能与一个名为"蝶"的项目相关。".zip"文件扩展名表明这些Gerber文件被压缩在一起,方便传输和存储。 接下来,我们分析压缩包中的...
1970年4月22日,美国首次发起了以“地球日”名义的大规模环保运动,这一事件标志着全球环境保护运动的开端。当天,全美各地举行了各种形式的集会和游行,旨在提高人们对环境问题的认识,并促使政府采取积极措施应对...