赞
踩
timedelta
类表示时间差,可以直接实例化得到,也可以由两个datetime
类型的数据做差得到
from datetime import timedelta
实例化timedelta
类时参数依次是:
days, seconds, microseconds, milliseconds, minutes, hours, weeks
所以如果你想实例化1天零6个小时的时间差对象需要指明参数:
td = timedelta(days=1, hours=6)
print(td)
输出:
timedelta
一般是由两个datetime
类型的数据做差引入的,所以下面的例子中均在这样的上下文中讲解timedelta
对象
days
:返回时间差的天数
例:
ini_time_str = '2020/8/3 23:00:51'
end_time_str = '2020/9/1 7:48:50'
ini_time = datetime.strptime(ini_time_str, '%Y/%m/%d %H:%M:%S')
end_time = datetime.strptime(end_time_str, '%Y/%m/%d %H:%M:%S')
print((end_time-ini_time).days)
输出:
seconds
:返回时间差的秒数
例:
ini_time_str = '2020/8/3 23:00:51'
end_time_str = '2020/9/1 7:48:50'
ini_time = datetime.strptime(ini_time_str, '%Y/%m/%d %H:%M:%S')
end_time = datetime.strptime(end_time_str, '%Y/%m/%d %H:%M:%S')
print((end_time-ini_time).seconds)
输出:
microseconds
:返回时间差的毫秒数
例:
ini_time_str = '2020/8/3 23:00:51'
end_time_str = '2020/9/1 7:48:50'
ini_time = datetime.strptime(ini_time_str, '%Y/%m/%d %H:%M:%S')
end_time = datetime.strptime(end_time_str, '%Y/%m/%d %H:%M:%S')
print((end_time-ini_time).microseconds)
输出:
这里大家应该发现了,以上三个属性输出的值是timedelta
对应位置的分量,而不是将时间差换算为某单位后的结果,为了便于大家理解,这里将以上例子中的timedelta
对象直接输出:
可以看到,由于timedelta
对象的microseconds
位置的分量是0,所以第三个例子的输出为0
min
:返回timedelta
下限(无论timedelta
对象是什么返回都一样)
例:
print(timedelta.min)
# 接上例,print((end_time-ini_time).min)返回相同的结果
输出:
max
:返回timedelta
上限(无论timedelta
对象是什么返回都一样)
例:
print(timedelta.max)
输出:
resolution
:返回timedelta
的精度(无论timedelta
对象是什么返回都一样)
例:
print(timedelta.resolution)
输出:
total_seconds
:返回将时间差转换为秒的结果
例:
ini_time_str = '2020/8/3 23:00:51'
end_time_str = '2020/9/1 7:48:50'
ini_time = datetime.strptime(ini_time_str, '%Y/%m/%d %H:%M:%S')
end_time = datetime.strptime(end_time_str, '%Y/%m/%d %H:%M:%S')
print((end_time-ini_time).total_seconds())
输出:
timedelta
对象只有这一个方法,所以如果你想将时间差转换为其他单位需要乘以相应的系数
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。