有的时候要统计两个日期之间的相距天数,可能有很多种方法,但使用datetime模块的datetime方法无疑是里面比较简单的,具体代码如下:
>>> import datetime
>>> d1 = datetime.datetime(2018,10,31) # 第一个日期
>>> d2 = datetime.datetime(2019,02,02) # 第二个日期
>>> interval = d2 - d1 # 两日期差距
>>> interval.days # 具体的天数
>>> interval.seconds # 具体的秒数
从上面来看,还是相当简单。具体的days和seconds就是具体的差距的天数和额外的秒数。里面常用的方法有:
>>> filter(lambda x: not x.startswith("_"), dir(interval))
['days', 'max', 'microseconds', 'min', 'resolution', 'seconds', 'total_seconds']
如果是两个日期还是带时,分,秒的话,同样可以算出两者的相距天数及秒数.
>>> import datetime
>>> d1 = datetime.datetime(2018,10,31,10,30,00)
>>> d2 = datetime.datetime(2018,11,01,10,40,30)
>>> interval = d2 - d1
>>> interval # 第一项是天数,相距1天
datetime.timedelta(1, 630)
>>> interval.days # 具体天数
>>> interval.seconds # 额外秒数
>>> interval.total_seconds() # 相差总秒数
87030.0
有的时候要统计两个日期之间的相距天数,可能有很多种方法,但使用datetime模块的datetime方法无疑是里面比较简单的,具体代码如下:>>> import datetime>>> d1 = datetime.datetime(2018,10,31) # 第一个日期>>> d2 = datetime.datetime(2019...
str1 ='4/3/2019'
str2 ='4/3/2018'
date1=datetime.datetime.strptime(str1[0:10],"%m/%d/%Y")
date2=datetime.datetime.strptime(str2[0:10],"%m/%d/%Y")
数据分析中会遇到日期、时间的计算,主要包括以下几种情况:
对2个日期进行时间差值的计算,如多少天(days)、多少小时(hours)、多少分钟(minutes)和多少秒(seconds)
对已知日期进行转换,如增加或减少:如多少天(days)、多少小时(hours)、多少分钟(minutes)和多少秒(seconds)
提取日期中的年份、月份和日子等信息
本文主要针对问题1和问题2,关于问题3,请查看博文:“python提取年月日遇到的问题”(链接:添加链接描述)
问题解决方法:
简单、高效地计算出两个日期之间相差的具体天数。
要求在尽可能短的时间内,对两个包含了最大差值600000天以上的6000条乱序日期数据的文件进行交叉计算(A依次取一个数,遍历B文件,即进行36000000次计算)。
# year, month, day均为int
d1 = datetime.date(year1, month1, day1)
d2 = datetime.date(year2, month2, day2)
print((d1 - d2).days
嗯,就这么简单
from
datetime import
datetime
cur_day =
datetime(2019, 7, 30)
next_day =
datetime(2019, 7, 31)
print((next_day - cur_day).days) # 1
print(“ok”)
python 两个日期之间的天数差、周数差、月数差、年数差
1、天数差(datetime、parse、rrule)
import datetime as dt
from dateutil import parser
from dateutil import rrule
######################################## date形式天数差
d1 = '2019-07-26'
d2 = '2020-08-01'
######## 法1
# (1)先将字符串-->时间格式da
date1 =
datetime.strptime(date_str1, '%Y-%m-%d')
date2 =
datetime.strptime(date_str2, '%Y-%m-%d')
delta = date2 - date1
print(delta.days)
在这个示例中,我们首先使用 strptime() 函数将
日期字符串转换为
datetime 对象。然后,我们
计算两个日期之间的
差异,并使用 days 属性获取
天数差异。输出将是 9,因为 2021 年 1 月 10 日是从 2021 年 1 月 1 日算起的第 9 天。