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


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值