将日期扩展到当天的开始日期和结束日期时间

时间:2015-07-17 16:30:46

标签: python datetime

根据当前时间(datetime.now()),我想将其展开以涵盖整个时间段。

现在我一直在使用:

start = (datetime.now() - timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')
end = datetime.now().strftime('%Y-%m-%d %H:%M:%S')

问题是这是从当前日期算起的24小时。如果是中午12点,这意味着它应该只回顾12小时,因为我想搜索当前的天数记录。

如何在Python中完成此操作?

3 个答案:

答案 0 :(得分:3)

我希望这是有道理的,我只是提供了非常具有描述性的变量名称

from datetime import datetime
from datetime import timedelta

now = datetime.now()
start_of_day = datetime(now.year,now.month,now.day)
delta_since_start_of_day = now - start_of_day
delta_till_end_of_day = timedelta(days=1) - delta_since_start_of_day
end_of_day = start_of_day + timedelta(days=1)

答案 1 :(得分:0)

这是另一个直接重置时间的解决方案-无需数学。使用datetime.replace():

now = datetime.now()
day_start = now.replace(hour=0, minute=0, second=0, microsecond=0)
day_end = day_start + timedelta(hours=24)

答案 2 :(得分:0)

我只是通过这种方式使用datetime.time.max:

now = datetime.now()
day_end = datetime.datetime.combine(now, datetime.time.max)