39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
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)
|