如何使用日期时间在某一天的一周内获得所有日期?

时间:2015-07-22 04:53:32

标签: python date datetime date-math

我在字典中的特定日期进行了一些测量。它看起来像

date_dictionary['YYYY-MM-DD'] = measurement

我想在给定日期的7天内计算测量值之间的差异。当我将日期字符串转换为datetime.datetime时,结果看起来像一个元组或数组,但不像一个。

是否有一种简单的方法可以在给定日期的一周内生成所有日期?如果是这样,我怎么能有效地做到这一点?

2 个答案:

答案 0 :(得分:3)

您可以使用 - timedelta执行此操作。示例 -

>>> from datetime import datetime,timedelta
>>> d = datetime.strptime('2015-07-22','%Y-%m-%d')
>>> for i in range(1,8):
...     print(d + timedelta(days=i))
...
2015-07-23 00:00:00
2015-07-24 00:00:00
2015-07-25 00:00:00
2015-07-26 00:00:00
2015-07-27 00:00:00
2015-07-28 00:00:00
2015-07-29 00:00:00

您实际上不需要打印它,datetime object + timedelta对象返回一个datetime对象。您可以直接在计算中使用返回的datetime对象。

答案 1 :(得分:3)

使用datetime,生成给定日期之后的所有7个日期,包括给定日期,您可以这样做:

import datetime
dt = datetime.datetime(...)
week_dates = [ dt + datetime.timedelta(days=i) for i in range(7) ]

有些库提供了更好的API来执行日期时间/日期操作,最值得注意的是pandas(尽管它包含更多内容)。请参阅pandas.date_range