【Django-CI系统】获取当前时间、获取当月第一天、最后一天日期等-20220510

参考

https://blog.csdn.net/TengTesting/article/details/119997493

#先导入包:
import calendar
import datetime
from datetime import timedelta

#获取今天日期:
#返回datetime格式:eg:2019-12-07 20:38:35.82816
now = datetime.datetime.now()
#返回datetime格式:eg:2019-12-07
now = datetime.datetime.now().date()
now = datetime.date.today()

#获取昨天日期:
yesterday = now - timedelta(days=1)

#获取明天日期:
tomorrow = now + timedelta(days=1)

#获取本周第一天和最后一天:
this_week_start = now - timedelta(days=now.weekday())
this_week_end = now + timedelta(days=6-now.weekday())

#获取上周第一天和最后一天:
last_week_start = now - timedelta(days=now.weekday()+7)
last_week_end = now - timedelta(days=now.weekday()+1)

#获取本月第一天和最后一天:
this_month_start = datetime.datetime(now.year, now.month, 1)
this_month_end = datetime.datetime(now.year, now.month, calendar.monthrange(now.year, now.month)[1])
#注:
#calendar.monthrange(year,month)
#传入两个值:一个是当前的年份,另外一个是当前的月份
#写法可以是:calendar.monthrange(now.year,now.month)
#返回两个整数。
#第一个值为该月第一天所在的星期几,对应的数字。0 - 6==>0(星期一)到6(星期日)
#第二个值为该月一共几天。

#获取上月第一天和最后一天 :
last_month_end = this_month_start - timedelta(days=1) 
last_month_start = datetime.datetime(last_month_end.year, last_month_end.month, 1)

#获取本季第一天和最后一天:
month = (now.month - 1) - (now.month - 1) % 3 + 1
this_quarter_start = datetime.datetime(now.year, month, 1)
this_quarter_end = datetime.datetime(now.year, month, calendar.monthrange(now.year, now.month)[1]) 

#获取上季第一天和最后一天:
last_quarter_end = this_quarter_start - timedelta(days=1)
last_quarter_start = datetime.datetime(last_quarter_end.year, last_quarter_end.month - 2, 1)

#获取本年第一天和最后一天:
this_year_start = datetime.datetime(now.year, 1, 1)
this_year_end = datetime.datetime(now.year + 1, 1, 1) - timedelta(days=1)

#获取去年第一天和最后一天:
last_year_end = this_year_start - timedelta(days=1)
last_year_start = datetime.datetime(last_year_end.year, 1, 1) 

#最后,如果要获取到date的格式,在最后加上".date"就能实现啦。

我的写法

    # this_month_start 2022-01-01 00:00:00
    # this_month_end 2022-01-31 23:59:59
    # last_month_end 2021-12-31 23:59:59
    # last_month_start 2021-12-01 00:00:00
    # this_quarter_start 2022-01-01 00:00:00
    # this_quarter_end 2022-01-31 23:59:59
    # last_quarter_end 2021-12-31 23:59:59
    # last_quarter_start 2021-10-01 00:00:00
    # this_year_start 2022-01-01 00:00:00
    # this_year_end 2022-12-31 23:59:59
    now = datetime.datetime.now() - timedelta(days=120)
    this_month_start = datetime.datetime(now.year, now.month, 1)
    #print('this_month_start',this_month_start)
    this_month_end = datetime.datetime(now.year, now.month, calendar.monthrange(now.year, now.month)[1])  + timedelta(days=1)- timedelta(seconds=1)
    #print('this_month_end',this_month_end)
    last_month_end = this_month_start - timedelta(seconds=1)
    #print('last_month_end',last_month_end)
    last_month_start = datetime.datetime(last_month_end.year, last_month_end.month, 1)
    #print('last_month_start',last_month_start)
    month = (now.month - 1) - (now.month - 1) % 3 + 1
    this_quarter_start = datetime.datetime(now.year, month, 1)
    #print('this_quarter_start',this_quarter_start)
    this_quarter_end = datetime.datetime(now.year, month, calendar.monthrange(now.year,month)[1]) + timedelta(days=1)- timedelta(seconds=1)
    #print('this_quarter_end',this_quarter_end)
    last_quarter_end = this_quarter_start - timedelta(days=1)+ timedelta(days=1)- timedelta(seconds=1)
    #print('last_quarter_end',last_quarter_end)
    last_quarter_start = datetime.datetime(last_quarter_end.year, last_quarter_end.month - 2, 1)
    #print('last_quarter_start',last_quarter_start)
    this_year_start = datetime.datetime(now.year, 1, 1)
    #print('this_year_start',this_year_start)
    this_year_end = datetime.datetime(now.year + 1, 1, 1) - timedelta(seconds=1)
    #print('this_year_end',this_year_end)
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值