我需要一个datetime对象,其日期是今天的日期,但是指定了时间(凌晨3点)。
我尝试过:
dt.now().date() + timedelta(hours=3)
->无法将timedelta添加到dt.date对象
foo = dt.now()
foo.hour = 3
foo.minute = 0
foo.second = 0
->不可写
这可行,但看起来很丑:
foo = dt(dt.now().year, dt.now().month, dt.now().day, 3,0,0,0)
或者,或者:
foo = dt(dt.now().year, dt.now().month, dt.now().day) + timedelta(hours=3)
是否有一种更清洁,更Python化的方式来做到这一点?感觉“今天在特定时间”应该是相当普遍的用例...
答案 0 :(得分:2)
就像datetime.datetime
具有类方法now
一样,datetime.date
也具有方法today
(与datetime.datetime.today
不同)。
您可以将此方法与datetime.datetime.combine
结合使用,以获得合理的解决方案:
_3am = time(3, 0, 0)
dt = datetime.combine(date.today(), _3am)
答案 1 :(得分:1)
请尝试以下操作:
foo = dt.datetime.combine(dt.date.today(), dt.time(3))