一.概要
创新互联是少有的成都网站建设、做网站、营销型企业网站、小程序开发、手机APP,开发、制作、设计、买链接、推广优化一站式服务网络公司,从2013年创立,坚持透明化,价格低,无套路经营理念。让网页惊喜每一位访客多年来深受用户好评
日期类型在编程语言中内部是通过number 存储的
日期类型加减实际是数字的加减
多数编程语言的日期开始时间是 1970-01-01 00:00:00
二. 为什么多数编程语言的开始日期是从1970-01-01 00:00:00 开始
通过查阅资料一般存在两种解释
多数编程语言起源于UNIX,UNIX系统的时间纪元是1970-01-01 00:00:00,即所为的UNIX时间戳。
最初计算机都是32位操作系统,时间需要通过number存储,32位能表示***数字为2147483647。一年365天的总秒数位 31536000 ,两者相除得68.1.所以如果从0000-00-00 00:00:00 算起的话,计算机到1901年12月13日就溢出了。而选用1970年的,可以支持到2038年。
这两种解释,我个人比较认可UNIX时间纪元的说法,毕竟UNIX出现在这一年,作为UNIX的研发者需要纪念这个重要的日子。
三.采用的UNIX时间纪元的开发语言
1.JAVA
文档地址:http://docs.oracle.com/javase/8/docs/api/java/util/Date.html#Date
不过对于中国开发者,通过 System.Out.Println(new Date(0)); ,控制台打印的时间是1970-01-01 08:00:00 ,这个是因为中国处于东8区的缘由。对于程序内部存储值无影响。
2.JavaScript
文档地址:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date
3.Python
文档地址: https://docs.python.org/3/library/datetime.html#date-objects
4.ORACLE
文档地址:http://docs.oracle.com/cd/E11882_01/appdev.112/e13995/oracle/sql/TIMESTAMP.html
5.PHP
文档地址:http://php.net/manual/en/function.time.php
四 .没采用UNIX时间戳的语言
1.基于 .Net 类库的语言
默认采用int64位来表示时间戳,并且精确到100ns,开始日期点为0001-01-01 00:00:00.000。
文档地址:https://msdn.microsoft.com/zh-cn/library/z2xf7zzk(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1
2.VBScript
文档地址:https://www.microsoft.com/china/vbscript/vbstutor/vbsdatatype.htm
这个开始时间很奇怪,从API来看,开始时间是从0100-01-01 00:00:00
不过从代码测试来看,开始时间是从1899-12-30 0 :00:00 开始
五.有关EXCEL 日期系统
在office excel中存在两种日期格式1900 和 1904,即日期的开始点为 1900-01-01 00:00:00 和 1904-01-01 00:00:00 。一般Excel 默认是按照1900的日期系统,且认为1900年为润年,1900年2月分 按照29天计算。Excel中存储值得起始日期是从1开始的,即,1900-01-01 00:00:00 在excel中对应的存储值为1 (天)。
网站题目:为什么编程语言中日期能够实现加减法
文章源于:http://www.shufengxianlan.com/qtweb/news5/139005.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联