Python根据一个日期获得一年前的日期

Python根据一个日期获取一年前的对应日期

import time
date='20200408'
timeArray=time.strptime(date,"%Y%m%d")
timeStamp=(time.mktime(timeArray))   #转化为时间戳
end_time = time.strftime('%Y-%m-%d',time.localtime(timeStamp))
start_year = int(time.strftime('%Y',time.localtime(timeStamp))) - 1
month_day = time.strftime('%m%d',time.localtime(timeStamp))
start_time = '{}{}'.format(start_year,month_day)

此处date表示给定日期,一年前的日期为startdate。
先对date进行格式str到时间戳(timeStamp)的转换,结果为1577808000.0
time.localtime的处理对象是时间戳
time.strftime(’%Y’,time.localtime(timeStamp))获得的是年,-1就说明是去年
代码比较容易看懂,就不再解释.
结果为20190408,startdate的类型也是str。
月的变换与年类似(还有一些小细节1到12的变换需自行调节)

根据一个日期获取一周前或者昨天的对应日期

import datetime
date='20200402'
dt=datetime.datetime.strptime(date, "%Y%m%d")
oneweek=datetime.timedelta(weeks=1)
yesterweek=dt-oneweek

此处以获取前一周为例,日情况类似,weeks改成days即可
dt是将str转化为datetime类型的日期,然后调用datetime.timedelta
结果为2020-03-26 00:00:00

你可能感兴趣的:(datetime,python,time,python)