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]

 

posted @ 2020-02-15 15:48  凯宾斯基  阅读(1077)  评论(0编辑  收藏  举报