Python 日期区间处理 (本周本月上周上月...)的完整攻略
在Python中,处理日期区间是非常常见的需求,比如要查询某个时间段内的数据,或者计算某个区间内的数据总和等。在Python中,处理日期区间可以使用datetime模块和dateutil模块来完成。下面是Python日期区间处理的完整攻略。
datetime模块
datetime模块是Python标准库中用来处理日期和时间的模块。它提供了两个重要的类:datetime类和timedelta类。datetime类用来表示日期时间,timedelta类用来表示时间间隔。
获取本周的起始日期和结束日期
import datetime
now = datetime.datetime.now()
week_start = now - datetime.timedelta(days=now.weekday())
week_end = week_start + datetime.timedelta(days=6)
print("本周开始日期:", week_start.strftime('%Y-%m-%d'))
print("本周结束日期:", week_end.strftime('%Y-%m-%d'))
运行以上代码,可以得到本周的起始日期和结束日期。
对于以上代码的解释如下:
- datetime.datetime.now()用来获取当前时间。
- now.weekday()用来获取当前日期的星期几(0代表星期一,1代表星期二,依次类推)。
- datetime.timedelta(days=now.weekday())用来计算出当前日期距离本周的第一天还有多少天。
- week_start = now - datetime.timedelta(days=now.weekday())用来获取本周的开始日期。
- week_end = week_start + datetime.timedelta(days=6)用来获取本周的结束日期。
获取上周的起始日期和结束日期
import datetime
now = datetime.datetime.now()
week_start = now - datetime.timedelta(days=now.weekday())
week_end = week_start + datetime.timedelta(days=6)
last_week_start = week_start - datetime.timedelta(days=7)
last_week_end = week_end - datetime.timedelta(days=7)
print("上周开始日期:", last_week_start.strftime('%Y-%m-%d'))
print("上周结束日期:", last_week_end.strftime('%Y-%m-%d'))
运行以上代码,可以得到上周的起始日期和结束日期。
对于以上代码的解释如下:
- last_week_start = week_start - datetime.timedelta(days=7)用来获取上周的开始日期。
- last_week_end = week_end - datetime.timedelta(days=7)用来获取上周的结束日期。
dateutil模块
dateutil模块是Python中处理日期时间的第三方库,它提供了更加灵活的方法。
获取本月的起始日期和结束日期
import datetime
from dateutil.relativedelta import relativedelta
now = datetime.datetime.now()
month_start = now - relativedelta(day=1)
month_end = now - datetime.timedelta(days=now.day) + relativedelta(day=31)
print("本月开始日期:", month_start.strftime('%Y-%m-%d'))
print("本月结束日期:", month_end.strftime('%Y-%m-%d'))
运行以上代码,可以得到本月的起始日期和结束日期。
对于以上代码的解释如下:
- datetime.datetime.now()用来获取当前时间。
- now.day用来获取当前日期是几号。
- relativedelta(day=1)用来计算出本月的第一天,relativedelta(day=31)用来计算出本月的最后一天。
- month_start = now - relativedelta(day=1)用来获取本月的开始日期。
- month_end = now - datetime.timedelta(days=now.day) + relativedelta(day=31)用来获取本月的结束日期。
获取上月的起始日期和结束日期
import datetime
from dateutil.relativedelta import relativedelta
now = datetime.datetime.now()
last_month_start = (now - relativedelta(months=1)) - relativedelta(day=1)
last_month_end = (now - relativedelta(months=1)) - datetime.timedelta(days=(now - relativedelta(months=1)).day) + relativedelta(day=31)
print("上月开始日期:", last_month_start.strftime('%Y-%m-%d'))
print("上月结束日期:", last_month_end.strftime('%Y-%m-%d'))
运行以上代码,可以得到上月的起始日期和结束日期。
对于以上代码的解释如下:
- (now - relativedelta(months=1))用来获取上个月的时间。
- last_month_start = (now - relativedelta(months=1)) - relativedelta(day=1)用来获取上个月的开始日期。
- last_month_end = (now - relativedelta(months=1)) - datetime.timedelta(days=(now - relativedelta(months=1)).day) + relativedelta(day=31)用来获取上个月的结束日期。
以上就是Python日期区间处理的完整攻略。本周本月上周上月等日期区间的处理,可以使用上述代码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 日期区间处理 (本周本月上周上月…) - Python技术站