datetime
参考:https://blog.csdn.net/lovedingd/article/details/134929553
time
timedelta
参考:https://geek-docs.com/python/python-ask-answer/981_python_formatting_timedelta_objects.html
timedelta 是 Python 中的一个类,用于表示两个日期或时间之间的差异。它可以表示年、月、日、小时、分钟和秒等单位的时间差。timedelta 对象非常有用,可以用于日期和时间的计算,也可以格式化为字符串以显示给用户。
timedelta 对象的创建
from datetime import datetime, timedelta# 创建一个以秒为单位的时间差为 3600 秒的 timedelta 对象
td1 = timedelta(seconds=3600)
print(td1) # 输出 1:00:00# 创建一个以分钟为单位的时间差为 120 分钟的 timedelta 对象
td2 = timedelta(minutes=120)
print(td2) # 输出 2:00:00# 创建一个以天为单位的时间差为 5 天的 timedelta 对象
td3 = timedelta(days=5)
print(td3) # 输出 5 days, 0:00:00
timedelta 对象的属性和方法
timedelta 对象具有多个属性和方法,用于获取和操作时间间隔的不同部分。下面是一些常用的属性和方法:
days:获取 timedelta 对象的天数部分。返回一个整数值。
seconds:获取 timedelta 对象的秒数部分。返回一个整数值。
total_seconds():获取 timedelta 对象的总秒数。
total_seconds():获取 timedelta 对象的总秒数。
以下是使用这些属性和方法的示例:
# 创建一个时间差为 2 小时 30 分钟的 timedelta 对象
td = timedelta(hours=2, minutes=30)# 获取 timedelta 对象的天数和秒数
print(td.days) # 输出 0,因为仅包含小时和分钟
print(td.seconds) # 输出 9000,表示 2 小时 30 分钟共有 9000 秒# 获取 timedelta 对象的总秒数
print(td.total_seconds()) # 输出 9000.0# 将 timedelta 对象的秒数转换为分钟
print(td.seconds / 60) # 输出 150.0
timedelta 对象的格式化
timedelta 对象默认以 [days,] [hh:mm:ss] 的格式进行输出。但我们也可以根据需要使用不同的格式进行定制。以下是一些常见的格式化选项:
%d:天数的两位数表示(01-31)。
%H:小时的两位数表示(00-23)。
%M:分钟的两位数表示(00-59)。
%S:秒数的两位数表示(00-59)。
下面是一个使用上述格式化选项的示例:
# 创建一个时间差为 1 天 2 小时 30 分钟的 timedelta 对象
td = timedelta(days=1, hours=2, minutes=30, seconds=1)
print(td) # 输出: 1 day, 2:30:01
print(td.seconds // 3600) # 输出: 2
print(td.seconds % 3600 // 60) # 输出: 30
print(td.seconds % 60) # 输出: 1
# 格式化 timedelta 对象为字符串
formatted_td = "{:02d}天 {:02d}小时 {:02d}分钟".format(td.days, td.seconds//3600, (td.seconds%3600)//60)
print(formatted_td) # 输出: 01天 02小时 30分钟