是否有更简洁的方式来获取指定日期在python中的今天的日期

时间:2019-10-25 10:50:23

标签: python datetime python-datetime timedelta

我需要一个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化的方式来做到这一点?感觉“今天在特定时间”应该是相当普遍的用例...

2 个答案:

答案 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))