timedelta:
用来构造时间内容:
下面所有的参数都有默认值0,这些参数可以是int或float,正的或负的。
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
strptime:
是datetime类的静态方法(转换后方可结合timedelta用来计算)
t_str = '2012-03-05 16:26:23'
d = datetime.datetime.strptime(t_str, '%Y-%m-%d %H:%M:%S')
例如:
import datetime
d1 = datetime.datetime.strptime('2022-03-02 19:45:28', '%Y-%m-%d %H:%M:%S')
d2 = datetime.datetime.strptime('2022-03-01 17:41:20', '%Y-%m-%d %H:%M:%S')
delta = d1 - d2
print(delta)
输出:
1 day, 2:04:08
也可以结合timedelta:
import datetime
d1 = datetime.datetime.strptime('2012-03-05 17:41:20', '%Y-%m-%d %H:%M:%S')
d3=datetime.timedelta(days=2)
delta = d1 - d3
print(str(delta))#没有str时输出的是类迭代器
print(delta.day)#单独抽出日
输出:
2012-03-03 17:41:20
3
计算后转换成单位:
total_seconds():
total_seconds()是获取两个时间之间的秒总差
seconds:
seconds获取的是时间差的秒数,遗漏了天seconds是获取时间部分的差值
蓝桥杯例题:纪念日
2020 年 7 月 1 日是中国共产党成立 99 周年纪念日。 中国共产党成立于 1921 年 7 月 23 日。 请问从 1921 年 7 月 23 日中午 12 时到 2020 年 7 月 1 日中午 12 时一共包 含多少分钟?
import datetime
def cal(s, e):
s1 = datetime.datetime.strptime(s, "%Y-%m-%d %H")
e1 = datetime.datetime.strptime(e, "%Y-%m-%d %H")
t=(e1-s1).total_seconds()
print(int(t//60))
cal("1921-7-23 12","2020-7-1 12")
输出:
52038720