t = datetime.date.today()
>>> 2022-07-21
可对生成的日期使用strftime进行自定义格式化,如
t = datetime.date.today().strftime('%Y年%m月%d日')
>>> 2022年07月21日
t = datetime.date.today().strftime('%Y.%m.%d')
>>> 2022.07.21
t = datetime.datetime.now()
>>> 2022-07-21 14:29:22.933343
同样,可以对其进行格式化
t1 = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
>>> 2022-07-21 14:29:22
在原本的datetime类型的时间下,加上datetime.timedelta()函数来实现,该函数参数可选:
days(天), seconds(秒), microseconds(微秒), milliseconds(毫秒), minutes(分钟), hours(时), weeks(周),那么,我们就可以根据自己的需要,往里面进行传参,正的则为未来时间,负的即为过去时间,如
一周前
t = datetime.datetime.now() + datetime.timedelta(weeks=-1)
>>> 2022-07-14 14:29:22.019178
一周后
t = datetime.datetime.now() + datetime.timedelta(weeks=1)
>>> 2022-07-28 14:29:22.019178
6天后
t = datetime.datetime.now() + datetime.timedelta(days=6)
或者,效果一样
t = datetime.datetime.now() + datetime.timedelta(weeks=1,days=-1)
其他参数以此类推
如果遇到一些查询条件设置,需要生成指定时间,则可以用datetime的replace函数进行替代生成,在datetime.datetime.today()生成日期及时间下的replace()有从year(年)到 microsecond(微秒)的参数,但在datetime.date.today()生成日期下的replace仅有year(年)、month(月)、日(day)。
如,生成2018年6月8日
t = datetime.date.today().replace(year=2018,month=6,day=8)
生成2018年6月8日下午2点30分0秒的时间,可以再使用strftime()函数格式化去掉后面的微秒毫秒级别时间
t2 = datetime.datetime.today().replace(year=2018,month=6,day=8,hour=14,minute=30,second=0)
>>> 2018-06-08 14:30:00.033747
到此,就可以使用上述方法获得一些想要获取的日期和时间了。