Files
Python_CookBook_repo/3.数字日期和时间/12.时间换算.py

39 lines
1.3 KiB
Python
Raw Normal View History

2025-09-10 16:12:45 +08:00
from datetime import timedelta, datetime
if __name__ == '__main__':
# 使用timedelta表示时间间隔
a = timedelta(days=2, hours=6)
b = timedelta(hours=4.5)
c = a + b
print(c.days)
# 这是计算小时的秒数
print(c.seconds)
# 这是计算天+小时的秒数
print(c.total_seconds())
# 如果要创建特定的日期和时间可以用datetime来表示
time1 = datetime(2024, 8, 28)
birthday = datetime(2001, 4, 29)
life_time = time1 - birthday
print(life_time.days)
now = datetime.now()
print(now)
# 值得注意的是datetime模块可以正确处理闰年的二月并计算出正确的天数我的评价是我直接不管
# 对绝大部分的问题datetime模块已经足够使用但是如果需要处理复杂时间问题比如时区、模糊时间范围、计算节日日期等
# 请他娘的使用dateutil模块
a = datetime(2012, 9, 23)
# 很明显因为timedelta没有month这个key所以我们不能直接加一个月它的精度最大只到days
# 这时候dateutil下的relativedelta就派上用场
from dateutil.relativedelta import relativedelta
b = a + relativedelta(years=10, months=2)
print(b)
# 包括计算日期差
d = relativedelta(b, a)
print(d.years, d.months, d.days)