从当前时间过去的时间

时间:2014-01-12 11:52:57

标签: python time

情景A: 假设当前时间是2014年1月12日凌晨3点,我希望在凌晨3点到凌晨3点之前的午夜过两次。

所以,我期待从2014年1月12日凌晨3点开始1月12日00:00和1月11日中午

情景B:

假设当前时间是2014年1月13日下午6:37,我希望在下午6:37之前的午夜和中午3点之前得到两次 所以,我期待2014年1月13日下午6点37分当前时间1月13日00:00和1月13日中午

时代可以在时代 - 我只是无法弄清楚在给定当前时间的情况下获得两次数学。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:4)

您可以使用datetime.datetime.combine合并日期和时间,这样您就可以获得当前日期:

today = datetime.datetime.now().date()

创造你的时代,例如:

midday = datetime.time(hour=12)

将它们加在一起,例如:

midday_today = datetime.datetime.combine(today, midday)

这比尝试从当前时间添加或减去时间要复杂得多。要确定您今天或昨天是否需要,您可以检查我们是在midday之前还是之后

if datetime.datetime.now().time() < midday:

把它们放在一起:

import datetime

now = datetime.datetime.now()

today = now.date()

midnight = datetime.time(hour=0)
midday = datetime.time(hour=12)

last_midnight = datetime.datetime.combine(today, midnight)
if now.time() < midday:
    yesterday = today - datetime.timedelta(days=1)
    last_midday = datetime.datetime.combine(yesterday, midday)
else:
    last_midday = datetime.datetime.combine(today, midday)