计算某一时间点某一时间段前后的时间
比如:
计算过去两年/一年/半年/三个月/一个月内的数据量
计算合同预计签署日期在未来一年内的数据量
用 (int(str) +/- n).strftime()
def past24Mons(time):
time = time.replace('-', '')
past24ago = '{}{}'.format(int(datetime.datetime.now().strftime('%Y%m%d')[:4]) - 2,
datetime.datetime.now().strftime('%m%d'))
return time >= past24ago
def past12Mons(time):
time = time.replace('-', '')
past12ago = '{}{}'.format(int(datetime.datetime.now().strftime('%Y%m%d')[:4]) - 1,
datetime.datetime.now().strftime('%m%d'))
return time >= past12ago
def one_year_ago(time):
date = {}
for i in time:
tmp = str(int(i[:4]) - 1) + i[4:]
date[i] = tmp
return date
用timedelta/relativedelta
from datetime import datetime,timedelta
from dateutil.relativedelta import relativedelta
def past6Mon(time):
time = time.replace('-', '')
past6ago = datetime.date.today() - datetime.timedelta(days=180)
past6ago = past6ago.strftime('%Y%m%d')
return time >= past6ago
def past1Mon(time):
time = time.replace('-', '')
past1ago = datetime.date.today() - datetime.timedelta(days=30)
past1ago = past1ago.strftime('%Y%m%d')
return time >= past1ago
# 获得当前时间
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
2020-12-25 16:08:15.946219 当前时间
2021-01-01 16:08:15.946219 7天后
2020-11-25 16:08:15.946219 一个月前
2020-12-10 16:08:15.946219