python比较日期大小_如果将excel的数字转化为日期(高级教程)

本文介绍了Excel日期表示方式及与Python日期格式的差异。Excel将日期以数字表示,而Python有自己的时间体系,以秒计数。文中给出将Excel时间转化为Python可识别格式的方法,还介绍了time模块中几个常用方法,如将时间戳转化为时间元组等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

db78edf5fb97a071a5530a50c1708c6e.png

实际上这和计算机的底层设置有关系,计算机是无法直接表示日期的,它只能把数字转化为日期,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时间戳能够识别的格式。

53a6791f6ce30e0f9366c2fad13aac4d.png

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

5153b7db605274c04c5d6e0ad35618aa.png

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

7ddd3d9a6db690d674dc9c8b8d6a3d05.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值