根据当前时间(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中完成此操作?
答案 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)