datetime 获取本周,上周,本月,上月,本季,一周的日期
import datetime from datetime import timedelta now = datetime.datetime.now() # 今天 today = now print('--- today = {}'.format(today)) # 昨天 yesterday = now - timedelta(days=1) print('--- yesterday = {}'.format(yesterday)) # 明天 tomorrow = now + timedelta(days=1) print('--- tomorrow = {}'.format(tomorrow)) # 当前季度 now_quarter = now.month / 3 if now.month % 3 == 0 else now.month / 3 + 1 print('--- now_quarter = {}'.format(now_quarter)) # 本周第一天和最后一天 this_week_start = now - timedelta(days=now.weekday()) this_week_end = now + timedelta(days=6 - now.weekday()) print('--- this_week_start = {} this_week_end = {}'.format(this_week_start, this_week_end)) # 上周第一天和最后一天 last_week_start = now - timedelta(days=now.weekday() + 7) last_week_end = now - timedelta(days=now.weekday() + 1) print('--- last_week_start = {} last_week_end = {}'.format(last_week_start, last_week_end)) # 本月第一天和最后一天 this_month_start = datetime.datetime(now.year, now.month, 1) this_month_end = datetime.datetime(now.year, now.month + 1, 1) - timedelta(days=1)+ datetime.timedelta( hours=23, minutes=59, seconds=59) print('--- this_month_start = {} this_month_end = {}'.format(this_month_start, this_month_end)) # 上月第一天和最后一天 last_month_end = this_month_start - timedelta(days=1)+ datetime.timedelta( hours=23, minutes=59, seconds=59) last_month_start = datetime.datetime(last_month_end.year, last_month_end.month, 1) print('--- last_month_end = {} last_month_start = {}'.format(last_month_end, last_month_start)) # 本季第一天和最后一天 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 + 3, 1) - timedelta(days=1)+ datetime.timedelta( hours=23, minutes=59, seconds=59) print('--- this_quarter_start = {} this_quarter_end = {}'.format(this_quarter_start, this_quarter_end)) # 上季第一天和最后一天 last_quarter_end = this_quarter_start - timedelta(days=1)+ datetime.timedelta( hours=23, minutes=59, seconds=59) last_quarter_start = datetime.datetime(last_quarter_end.year, last_quarter_end.month - 2, 1) print('--- last_quarter_start = {} last_quarter_end = {}'.format(last_quarter_start, last_quarter_end)) # 本年第一天和最后一天 this_year_start = datetime.datetime(now.year, 1, 1) this_year_end = datetime.datetime(now.year + 1, 1, 1) - timedelta(days=1)+ datetime.timedelta( hours=23, minutes=59, seconds=59) print('--- this_year_start = {} this_year_end = {}'.format(this_year_start, this_year_end)) # 去年第一天和最后一天 last_year_end = this_year_start - timedelta(days=1)+ datetime.timedelta( hours=23, minutes=59, seconds=59) last_year_start = datetime.datetime(last_year_end.year, 1, 1) print('--- last_year_start = {} last_year_end = {}'.format(last_year_start, last_year_end))
# 获取一周的日期 now_time = datetime.datetime.now() # 获取当前时间 day_num = now_time.isoweekday() # 当前天是这周的第几天 week_start = ((now_time - datetime.timedelta(days=day_num)) + datetime.timedelta( days=1)).date() # 计算当前天所在周周一 格式为yyyy-MM-dd week_end = ((now_time - datetime.timedelta(days=day_num)) + datetime.timedelta( days=7)).date() # 计算当前天所在周周天 格式为yyyy-MM-dd print(week_end) week_e = ((now_time - datetime.timedelta(days=day_num)) + datetime.timedelta( days=7)) # 计算当前天所在周周天 格式为yyyy-MM-dd 12:01:13.026315 week_s = ((now_time - datetime.timedelta(days=day_num)) + datetime.timedelta( days=1)) # 计算当前天所在周周一 格式为yyyy-MM-dd 12:01:13.026315 # while week_s <= week_e: # 循环输出周一至周五的每天日期格式yyyy-MM-dd # print(week_s.date()) # week_s = week_s + datetime.timedelta(days=1) create_time__range = (week_start, week_end) # 范围(周一,周五)可用于数据库日期范围查询 print(create_time__range)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了