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

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

当前回答

这是有效的:

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)

其他回答

我的代码有点复杂,但我经常使用它

strftime("%y_%m_%d", localtime(time.time()))

引用:'https://strftime.org/

你可以查看参考资料来制作任何你想要的东西YYYY-MM-DD只需将我的代码更改为:

strftime("%Y-%m-%d", localtime(time.time()))

我总是使用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'

如果您需要太平洋标准时间(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'

您可以使用datetime.date.today()将生成的datetime.date对象转换为字符串:

from datetime import date
today = str(date.today())
print(today)   # '2017-12-26'

如果你喜欢记住有趣的代码,Datetime就很可爱。你不喜欢简单吗?

>>> import arrow
>>> arrow.now().format('YYYY-MM-DD')
'2017-02-17'

这个模块足够聪明,可以理解你的意思。

只需执行pip安装箭头。

附录:在回答那些对这个答案感到困惑的人时,让我说箭头代表了Python中处理日期的一种替代方法。这正是我想建议的。