如何使用datetime模块获取python中的第一个和最后一个

时间:2012-12-01 17:09:22

标签: python datetime

如何使用datetime模块获取python中的第一个和最后一个,这意味着00:00:01和23:59:59。

我想在今天之前获得六个日期时间。

所以,例如:

今天12月10日,我想要

12/9 00:00:01和23:59:59

...

12/4 00:00:01和23:59:59

非常感谢。

1 个答案:

答案 0 :(得分:15)

只需使用datetime.time.mindatetime.time.max

>>> import datetime
>>> datetime.time.min
datetime.time(0, 0)
>>> datetime.time.max
datetime.time(23, 59, 59, 999999)

您可combine使用datetime.date实例获取完整的datetime.datetime实例:

>>> datetime.datetime.combine(datetime.date.today(), datetime.time.max)
datetime.datetime(2012, 12, 1, 23, 59, 59, 999999)

要重复使用现有的datetime.datetime实例,请使用.combine()方法和.date()实例上的datetime.datetime方法创建新的datetime.datetime实例实例:

>>> datetime.datetime.combine(datetime.datetime.now().date(), datetime.time.min)
datetime.datetime(2012, 12, 1, 0, 0)

要获取日期的系列,请使用datetime.timedelta个实例创建偏移。与此相关的一系列日期很简单:

today = datetime.date.today()
lastweek = today - datetime.timedelta(days=7)
for i in range(7):
    aday = lastweek + datetime.timedelta(days=i)
    first = datetime.datetime.combine(aday, datetime.time.min)
    last = datetime.datetime.combine(aday, datetime.time.max)
    print first, last