为什么在datetime模块中有date.today()但没有time.now()?

时间:2014-02-06 18:14:09

标签: python datetime

我正在编辑一些Python并在datetime模块中遇到这种不一致。 对于我刚才需要的当前日期:

from datetime import date
todaysDate = date.today()
if todaysDate > date( 2020,4,4 ) :
...

但是时间:

from datetime import datetime
from datetime import time
nowTime = datetime.now().time()
if nowTime > time( 17,15,0 ) :
...

在datetime.time对象中没有“now()”方法(或任何名称)的任何理由?这会更清洁:

from datetime import time
nowTime = time.now()
if nowTime > time( 17,15,0 ) :
...

PS:此时时间模块不是一个选项

1 个答案:

答案 0 :(得分:1)

我怀疑,但不确定,没有datetime.time.now()的原因是类型datetime.time不代表某个时间点 - 而是代表一天中的某个时间。因此,虽然能够在没有获得当前日期的情况下获得当前时间可能有点方便,但这不是必要的操作。

我怀疑GvR不会分享您的评估,即删除.time()会使代码更“清洁”。我认为它“非常轻微”更清洁,而且你会在time上复制datetime上的两个函数,因为有人会想要utcnow()。而其他人则希望time.now()采用可选的时区参数。