有没有比以下更好的方法以YYYY-MM-DD格式返回今天的日期?

str(datetime.datetime.today()).split()[0]

当前回答

使用strftime:

>>> from datetime import datetime
>>> datetime.today().strftime('%Y-%m-%d')
'2021-01-26'

还要在末尾加上零填充的小时:分钟:秒:

>>> datetime.today().strftime('%Y-%m-%d %H:%M:%S')
'2021-01-26 16:50:03'

要获取UTC日期和时间:

>>> datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
'2021-01-27 00:50:03'

其他回答

使用f字符串,它们通常是任何文本变量组合的最佳选择:

from datetime import date
print(f'{date.today():%Y-%m-%d}')

取自Python f-string格式,不适用于具有官方链接的strftime内联。

我总是使用isoformat()方法。

from datetime import date    
today = date.today().isoformat()
print(today)  # '2018-12-05'

注意,如果您需要标准ISO 8601格式的时间,这也适用于datetime对象。

from datetime import datetime
now = datetime.today().isoformat()
print(now)  # '2018-12-05T11:15:55.126382'

这是有效的:

from datetime import date
today =date.today()

本次产量:2020-08-29

其他:

this_year = date.today().year
this_month = date.today().month
this_day = date.today().day
print(today)
print(this_year)
print(this_month)
print(this_day)

如果您需要太平洋标准时间(PST),您可以

from datetime import datetime
import pytz

tz = pytz.timezone('US/Pacific')
datetime.now(tz).strftime('%Y-%m-%d %H:%M:%S')
# '2021-09-02 10:21:41'

使用strftime:

>>> from datetime import datetime
>>> datetime.today().strftime('%Y-%m-%d')
'2021-01-26'

还要在末尾加上零填充的小时:分钟:秒:

>>> datetime.today().strftime('%Y-%m-%d %H:%M:%S')
'2021-01-26 16:50:03'

要获取UTC日期和时间:

>>> datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
'2021-01-27 00:50:03'