1,str与datetime.datetime类型之间的切换,如下所示:
>>> stime = "2020-05-06"
>>> type(stime)
<class 'str'>
>>> dt = datetime.strptime(stime,"%Y-%m-%d")
>>> type(dt)
<class 'datetime.datetime'>
>>> strtime = dt.strftime("%Y-%m-%d")
>>> type(strtime)
<class 'str'>
str转换成datetime.datetime类型:datetime.strptime()函数。将str类型stime转换成datetime.datetime类型。
datetime.datetime类型转化成str:dt.strftime().将原本是datetime.datetime类型的数据转换成str类型。
相互为datetime.datetime类型的数据才能进行加减等操作,
应用:
2,获取8天之前的数据
代码如下:
import time
import datetime
today = time.strftime("%Y-%m-%d", time.localtime()) /获取当前时间并转换成固定格式
week_ago_time = (datetime.datetime.now() - datetime.timedelta(days=8)).strftime("%Y-%m-%d") /获取8天前的日期
3,获取固定日期的前后n天的数据
先将固定日期转化成'datetime.datetime'格式的,因为'datetime.datetime.now()'就是这种格式的;然后想上面一样做减法就可以了、
这里用到的函数是datetime.datetime库的strptime(),代码如下所示:
import time
import datetime
from datetime import datetime as dtime
dt = dtime.strptime("2019-07-07", "%Y-%m-%d")
week_ago_time = ( dt - datetime.timedelta(days=8)).strftime("%Y-%m-%d")
注意:from datetime import datetime as dtime 将库的名字做个替换不然会跟其父库datetime冲突
输出为:
>>> print week_ago_time
2019-06-29
3,计算两个日期的相差的天数
>>> day1 = "2020-05-06"
>>> day2 = "2020-05-01"
>>> day1_dt = datetime.strptime(day1,"%Y-%m-%d")
>>> day2_dt = datetime.strptime(day2,"%Y-%m-%d")
>>> (day1_dt-day2_dt).days
5
先将两个str类型的日期转换成datetime类型;然后作减法,其days即相差天数。