`
winfred1206
  • 浏览: 12859 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

为何计算机等电子设备要用1970年1月1日作参考时间

    博客分类:
  • Java
阅读更多

          在java中用过System类下的 CurrentTimeMillis()或Date类的相关的时间、日期的方法函数的同学都知道,我们常要与1970年1月1日零时的时间做差值计算。很多同学或许做过,但是或许有一部分不知道为什么是这样的,计算机工程师、物理科学家们可是相当聪明的人,他们为何要这么做呢?接下来,我就简要谈一谈?

      1970.1.1是个神马特殊的日子?为什么要给这个奇葩如此“殊荣”?原来,1970.1.1是被看作计算机的元年,最早出现的UNIX操作系统考虑到计算机产生的年代和应用的时限综合取了1970年1月1日作为UNIX TIME的纪元时间(开始时间),而java、数据库、许多精密的仪器等也自然也遵循了这一约束。

       看完上面一段,或许就明白了,但是我觉得还是有必要多了解有一些相关小知识,“技多不压身”。通常,国际上也有不少计时都是采用的GMT,全称是GreenWich Mean Time,,现在一些电子设备时间的计算和显示是以距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量为标准的,如1970-1-10 20:47 偏移量为2724441632毫秒,出现类似字样说明时间被初始化了。 但是我们在API文档里看到的是与UTC(Universal Time Coordinated)时间相关,

       -----UTC,协调世界时,又称世界标准时间或世界协调时间,简称UTC(从英文“Coordinated Universal Time”/法文“Temps Universel Cordonné”而来),是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治平时。中国大陆采用ISO 8601:2000的国家标准GB/T 7408-2005《数据元和交换格式 信息交换 日期和时间表示法》中亦称之为协调世界时。台湾采用CNS 7648的《资料元及交换格式–资讯交换–日期及时间的表示法》(与ISO 8601类似)称之为世界协调时间。(参考维基百科)

        诚然UTC是一种更为科学的计时标准,在今天相对论、量子学、弦论等高大上的日益发展、完善,时间的精确度越来越苛刻,或许,在不久的将来XXX计时标准又会出现。 然而,对于普通民众来说,GMT、UTC的差别可以几近忽略,因为,协调世界时UTC与世界时GMT相差不会超过0.9秒,当大于此值时,位于巴黎的国际地球自转事务中央局负责决定何时加入闰秒。

         还有一个有意思的类似 千年虫Y2K BUG的问题,公历的UTC时间2038年1月19日3时14分7秒. 到这天的凌晨3时14分8秒, UNIX时间会溢出并变成10000000 00000000 00000000 00000000(十进值-214748368), 也就是UTC时间1901年12月13日20时45分52秒, 引起和千年虫类似的混乱.可是,也不必担心,因为,这描述的是使用32位操作系统的仪器将要出现的BUG,现在64位电脑操作系统已经很普遍,手机也出现了首款64位的操作系统(5s上运行的即是), 要等64位的出现这样溢出的BUG,那得等到292,277,026,596年12月4日15时30分08秒,那时的事情我就不去想了,想了也是在自己跟自己瞎扯淡。

 

 

      文献参考:

               1)为什么编程语言以及数据库要从1970年1月1日开始计算时_无情无绪_新浪博客 http://blog.sina.com.cn/s/blog_61352f210100geai.html

               2)Java API文档,System、Date类相关资料

               3)为什么计算机和一些电子产品的时间选择在1970.1.1 - NEVER - 博客频道 - CSDN.NET http://blog.csdn.net/jacqueslim/article/details/6909861此文被很多很多博主转载,被“原创”,写的很好,也找不到真实的原创了)

               4)Wikipedia(维基百科)

               5)百度百科

分享到:
评论

相关推荐

    20计算机应用基础.doc

    表1.1.1 计算机的发展情况表 "计算机发展阶段 "使 用 时 间 "主要电器元件 " "第一代计算机 "1946~1957年 "电子管 " "第二代计算机 "1958~1964年 "晶体管 " "第三代计算机 "1965~1970年 "中、小规模集成电路" ...

    计算机应用基础中职PPT学习教案.pptx

    5 1.2 计算机的发展历程 1946年2月14日,世界上第一台电脑ENIAC在美国 宾夕法尼亚大学诞生。 工作中的"ENICA" 工作人员操作"ENICA" 第4页/共11页 计算机应用基础中职PPT学习教案全文共11页,当前为第5页。 6 1.2 ...

    计算机应用基础中职PPT课件.pptx

    4 1.2 计算机的发展历程 1946年2月14日,世界上第一台电脑ENIAC在美国 宾夕法尼亚大学诞生。 工作中的"ENICA" 工作人员操作"ENICA" 第4页/共11页 计算机应用基础中职PPT课件全文共11页,当前为第4页。 5 1.2 计算机...

    《计算机应用基础》(第二版)项目1.pptx

    电子数字积分计算机),于1946年2月15日诞生在宾夕法尼亚大学,采用电子管作为基本电子元件,内存储器采用水银延迟线,外存储器主要采用磁鼓、纸带、卡片、磁带等。用了足足17468个电子管,另外还有60000个电阻器、...

    计算机应用基础(第二版)教学设计.pdf

    计算机应用领域: (1)科学计算(2)信息管理(3)过程控制(4)计算机辅助系统(5)人工 智能 六、教学反思: 备课人签名: 年 月 日 组长签名: 年 月 日 教研组长意见: 年 月 周 汽车运用与维修(1)班,中餐...

    计算机基础知识大全(1).doc

    1、计算机工作原理: 1)什么就是计算机 计算机(puter)就是一种能接收与存储信息,并按照存储在其内部得程序(这些程序就 是人们意志得体现)对输入得信息进行加工、处理,然后把处理结果输出得高度自动化得 电子设备。...

    计算机新技术作业.doc

    以互联网(Internet)为标志的信息系统 第一代电子管计算机 (1946-1957) 1946年2月15日,标志现代计算机诞生的ENIAC(Electronic Numerical Integrator and Computer)在费城公诸于世。ENIAC代表了计算机发展史上的里程碑...

    计算机基础知识大全.doc

    1)什么是计算机 计算机(Computer)是一种能接收和存储信息,并按照存储在其内部的程序(这些程 序是人们意志的体现)对输入的信息进行加工、处理,然后把处理结果输出的高度自动 化的电子设备。 2)计算机工作...

    多关节机器人问题的简单介绍.docx

    机器人技术是综合了计算机、控制论、机构学、信息和传感技术、人工智能、仿生学等多学科而形成的高新技术,是当代研究十分活跃,应用日益广泛的领域。机器人应用情况,是一个国家工业自动化水平的重要标志。 机器人...

    智能制造.pptx

    认识智能制造 2017年12月28日 智能制造全文共52页,当前为第1页。 C 一 为什么要智能制造 目 录 二 三 五 智能制造是什么 几点体会和建议 四 智能制造什么做 国内外典型案例 智能制造全文共52页,当前为第2页。 1.1 ...

    Collections源码java-jdac:开源数据收集系统,使用Arduino板从不同的传感器收集数据

    CSV文件中的时间以自Unix纪元(1970年1月1日)以来的毫秒数表示。 与其他任何CSV文件一样,导出的CSV文件可以导入所有主要电子表格软件中。 可以使用“传感器”菜单选择传感器类型,应用程序将基于所选传感器在图表...

Global site tag (gtag.js) - Google Analytics