python 获取当前时间 和 前天 or 后天的方法
datetime:日期时间模块,提供多种方法操作日期和时间
strftime:对日期时间格式化
获取今天的日期,昨天的日期,格式化的日期
>>> import datetime
>>> today=datetime.date.today()
>>> print today
2018-01-17
>>> formatted_today=today.strftime('%y%m%d') 这里合起来写 datetime.date.today().strftime('%Y%m%d') 输出正常 20180117
>>> print formatted_today
180117
>>> yesterday=int(formatted_today)-1
>>> print yesterday
180116
以上内容于2018年1月17日编写,现3月1日发现一些问题,当跨月份时,上面代码会出现。
yesterday=int(formatted_today)-1
执行这行代码后,3月1日的前一天变成了3月0日
怎么改呢?
yesterday = (datetime.date.today() + datetime.timedelta(days=-1)).strftime('%Y%m%d')
先获取今天的日期
然后使用datetime的timedetla对象,这个对象表示两个时间差值,datetime.timedelta(days=-1)表示往前一天的时间,3月1日往前一天就是2月28日。
最后用strftime转换时间格式
原文链接:https://blog.csdn.net/waiwai3/article/details/79091118
时间对比 https://www.cnblogs.com/kaibindirver/p/11058295.html
2023/4/24
class newNeedTime():
# 获取当前时间
def get_cur_data(self):
return datetime.datetime.now().strftime('20%y-%m-%d %H:%M:%S')
# 前7天的日期(含今日)
def get_week(self):
return (datetime.datetime.now() - datetime.timedelta(days=6)).strftime('20%y-%m-%d 00:00:00')
# 拿到上周结束时间
def get_week_end(self):
return (datetime.datetime.now() - datetime.timedelta(days=6)).strftime('20%y-%m-%d 00:00:00')
# 拿到上周开始时间
def get_last_week(self):
return (datetime.datetime.now() - datetime.timedelta(days=13)).strftime('20%y-%m-%d 00:00:00')
本周
print("time<=",needTime().get_cur_data(), "and time >=",needTime().get_week())
# 上周
print("time<",needTime().get_week_end(), "and time >=",needTime().get_last_week())
输出
time<= 2023-04-24 12:07:12 and time >= 2023-04-18 00:00:00
time< 2023-04-18 00:00:00 and time >= 2023-04-11 00:00:00
[Finished in 0.1s]