Python计算时间,(1天前, 一个月前)

from datetime import datetime,timedelta

from dateutil.relativedelta import relativedelta

# 获得当前时间
now_time = datetime.now()
print(now_time, "当前时间")

# 方法一
def change_time(time_str, days=0, hours=0,  minutes=0):
    if type(time_str) == str:
        time_str = datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')
    ret = time_str + timedelta(days=days, hours=hours, minutes=minutes)
    return ret


# 7天后
ret1 = change_time(now_time, days=7)
print(ret1, "7天后")


# 方法二
def delay_time(time_str, years=0, months=0, days=0, hours=0, minutes=0, seconds=0):
    if type(time_str) == str:
        time_str = datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')
    ret = time_str + relativedelta(years=years, months=months, days=days, hours=hours, minutes=minutes, seconds=seconds)
    return ret


# 1个月前
ret2 = delay_time(now_time, months=-1)
print(ret2, '一个月前')

# 注意: relativedelta 还有一种用法
ret3 = now_time + relativedelta(day=10)  # 注意这里是day, 上边是days
print(ret3)     # 此时获得的时间是10号的, 也就是上边的day是几他就是几号,
                # 有意思的是, 你是平年2月传一个31, 得到的结果是28


猜你喜欢

转载自blog.csdn.net/qq_42327755/article/details/87866207