Python 基础教程

Python 高级教程

Python 相关应用

Python 笔记

Python FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/python-iterating-a-range-of-dates.html

python 日期时间范围遍历操作

python 日期和时间操作全解 python 日期和时间操作全解


我们经常在离线任务中,用到基于输入的日期参数,计算指定日期范围内的相关数据统计,如统计从昨天算起近 30 天每天的统计数据,这里列出 python 几种常用的时间日期范围遍历操作。

推荐方式

利用 python 标准库的 datetime 模块的 date 和 timedelta 类进行范围限定,并结合 range 内置函数进行遍历。

假设输入的参数是昨天的日期,遍历最近每天的日期,并对每天进行业务 todo,示例如下:

from datetime import datetime, timedelta

# 模拟输入的昨日日期参数
from_arg_dt = '2020-09-07'

# 字符串日期转换成 datetime.datetime 对象
end_datetime = datetime.strptime(from_arg_dt, '%Y-%m-%d')

# 遍历近 30 天的日期
for i in range(30):
    # datetime 对象和 timedelta 对象可以进行日期时间加减操作,返回的是新的 datetime 对象
    dt = end_datetime - timedelta(days=30 - i)
    # 如需,也可以转换成 str 对象
    dt_str = dt.strftime('%Y-%m-%d')
    # todo other things

如果明确指定的日期的起始时间,遍历操作代码如下:

from datetime import date, timedelta

# 模拟输入起始及截止日期
begin = date(2020, 8, 20)
end = date(2020, 9, 7)

# range 函数进行遍历
for i in range((end - begin).days + 1):
    # date 对象和 timedelta 进行时间间隔计算,并返回 date 对西那个
    day = begin + timedelta(days=i)
    # 也可以根据需要,转换成 str 字符串对象
    day_str = day.strftime('%Y-%m-%d')
    # todo other things

datetime 模块的其中一个核心 api 是,timedelta 对象可以和 datetime、date、time 对象进行时间加减操作,且返回的还是原有对象类型(新的对象)。

python 有很多日期和时间操作的库,其中比较常用的是标准库中提供的 datetime 模块,它除了日期时间的常规计算操作之外,它关注点更 ...
Java 的时间和日期 API 在 1.0 有一个 Date 类,事后证明它过于简单,1.1 引入 Calendar 类之后,Date 类中 ...
一般 t+1 的离线任务中,往往需要遍历一定时间范围内日期,然后将每天的日期作为参数或条件进行下一步操作,主要用 date 命令指定特定格式 ...
Python 开发实践中,经常需要将时间戳与指定的日期时间进行相互转换,Python 中处理时间的模块主要为 time 和 datetime ...
下面我将介绍三种常见的方式,并为每种方式提供步骤、代码示例以及可能用到的第三方库的Maven和Gradle依赖坐标。示例代码:Maven依赖 ...