使用Python datetime计算时间窗口

时间:2010-12-21 16:16:35

标签: python datetime

我想查询我的数据库,查看特定日期(例如今天00:00到23:59:59)发布的所有记录,给出datetime.datetime时间戳,例如datetime.datetime(2010,12,21) ,17,59,43,85335)。

请计算开始和结束datetime.datetime实例的最佳方法是什么?我想最终得到这样的东西:

>>> timestamp = datetime.datetime(2010, 12, 21, 17, 59, 43, 85335)
>>> # do something with timestamp to get start_date and end_date 
>>> start_date
datetime.datetime(2010, 12, 21, 0, 0, 0, 0)
>>> end_date
datetime.datetime(2010, 12, 21, 23, 59, 59, 0)

谢谢,HC

3 个答案:

答案 0 :(得分:2)

啊,找到了我想要的东西。我每次都在与日期时间斗争。

>>> timestamp = datetime.datetime.now()
>>> timestamp
datetime.datetime(2010, 12, 21, 18, 31, 37, 900795)
>>> timestamp.replace(hour=0, minute=0, second=0, microsecond=0)
datetime.datetime(2010, 12, 21, 0, 0)

答案 1 :(得分:0)

如果它只是计算一天,那么你所拥有的就好了。只需使用当天,然后分别将时间设为0:00和23:59。

如果你想获得一个月的开始和结束时间,那就会变得更复杂,因为几个月有不同的日子。对于类似的东西,你可以使用这个模块

http://niemeyer.net/python-dateutil

答案 2 :(得分:0)

timedelta听起来就像你需要的那样。

http://docs.python.org/library/datetime.html#timedelta-objects

从datetime导入日期时间,日期

date.today() - timedelta(days = 7)

从今天起7天后会给你。