您的位置 首页 > 数码极客

delphi从1970年1月1日开始的秒数如何变成日期

不知道大家有没有这样的体会,明明我们在单元格里输入的是一个日期,但是excel却提示我们输入的是一个数字,这个东西就很奇怪了,43471怎么就成了日期了那?

实际上这和计算机的底层设置有关系,计算机是无法直接表示日期的,它只能把数字转化为日期,excel默认1代表1900年1月1日,2代表1900年1月2日,依次类推,到了2019年1月6日就变成了43471,这种表示方式虽然很直观,有些时候也会给我们带来一定的麻烦,比如说当我们用python做自动化脚本的时候,python是不认识excel的这种日期格式的,它只能把日期识别为数字,不利于脚本后续的处理,怎么才能把excel中的时间转化成python识别的时间那?

在这里给大家介绍一个知识,python也有自己的一套时间体系,它的时间体系和linux比较类似,默认以秒计数,1970年1月1日为时间的起始,以后每隔一秒加1,这套计数规则也叫作linux时间戳,现在我就给大家介绍一种方法,将excel时间转化为linux时间戳能够识别的格式。

首先我们先计算一下1990年1月1日到1970年1月1日中间有多少天,这个不需要自己算,直接用excel的时间对象相减就可以了,然后我们把25568这个常量记录下来。

在python里引入一个time模块,里面有一个()的方法,这个方法的作用是将时间戳转化为时间元组,大家也看到了,我的公式里有一个*24*3600,这个公式的作用就是讲excel的天转化为python里面的秒,通过结果我们发现日期差了一天,没关系,在以后计算时我们将25568写成25569就可以了。

不过时间元组并不是我们日常所见的日期形式,想要转化为2019-1-1这种形式怎么写,也很简单,使用strftime()方法就可以。这次的形式大家是不是就感觉很熟悉了。

总结:本文中用到的知识点主要是time模块

  1. 时间戳的开始时间为1970年1月1日(据说后面是8点0分0秒)
  2. ()可以将时间戳转化为时间元组
  3. () 可以将时间元组格式成字符串
  4. 还有一个常用的方法() 将时间元组转化为时间戳

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“delphi从1970年1月1日开始的秒数如何变成日期”边界阅读