【问题标题】:write specific hour in a python datetime object [duplicate]在python datetime对象中写入特定小时[重复]
【发布时间】:2022-01-19 11:53:17
【问题描述】:

我需要暂停程序直到第二天的 08:00,独立于代码运行的时间。换句话说,如果它在今天 08:00 运行,它将暂停 24 小时,但它在 20:00 运行,它将在下一个日期的 08:00 恢复。

这是我想出的:

from datetime import datetime, timedelta
nowDateTimeObj = datetime.now()
tomorrow = nowDateTimeObj + timedelta(days=1)
tomorrow.hour = 8

将 1 天的时间增量添加到 nowDateTimeObj 日期时间对象可以很好地将日期更改为明天,但会生成相对于现在 24 小时的时间。我想取这个“明天”日期时间对象并将小时部分设置为 08:00

但我收到以下错误:

error: attribute 'hour' of 'datetime.datetime' objects is not writable

【问题讨论】:

  • 不确定是否最好回复评论或答案。第一次:解决方案是使用 datetime.replace() 函数。

标签: python datetime python-datetime


【解决方案1】:

有多种方法可以做到这一点,我提供下面的示例只是因为它对我来说更具可读性。

from datetime import datetime, date

today = date.today()
tomorrow = datetime(today.year, today.month, today.day+1)
tomorrow_8am = tomorrow.replace(hour=8)

print(today_date, tomorrow_8am)

【讨论】:

  • 是的,这是给同一只猫剥皮的另一种好方法 :) 谢谢
【解决方案2】:

嗯,我确实找到了解决方案:

明天 = 明天.replace(hour=8)

谢谢大家!

【讨论】:

    猜你喜欢
    • 2015-11-19
    • 1970-01-01
    • 2019-11-01
    • 2016-08-01
    • 2012-05-16
    • 1970-01-01
    • 2019-06-01
    • 2023-03-22
    • 2013-08-15
    相关资源
    最近更新 更多