我正在尝试将当前本地时间作为字符串格式化:year-month-day hour:mins:seconds。我将用于记录。通过阅读文档,我可以通过以下方式完成:
import time
'{0:%Y-%m-%d %H:%M:%S}'.format(time.localtime())
然而我收到错误:
Traceback (most recent call last): File "", line 1, in ValueError: Invalid format specifier
我做错了什么?还有更好的方法吗?
答案 0 :(得分:31)
time.localtime
返回time.struct_time
,它不支持类似strftime的格式。
传递支持strftime格式的datetime.datetime
对象。 (见datetime.datetime.__format__
)
>>> import datetime
>>> '{0:%Y-%m-%d %H:%M:%S}'.format(datetime.datetime.now())
'2014-02-07 11:52:21'
答案 1 :(得分:14)
您也可以使用time.strftime
:
time.strftime('{%Y-%m-%d %H:%M:%S}')
答案 2 :(得分:7)
对于Python的较新版本(3.6 +,https://www.python.org/dev/peps/pep-0498/纯粹是出于完整性考虑),您可以使用较新的字符串格式,即。
import datetime
today = datetime.date.today()
f'{today:%Y-%m-%d}'
> '2018-11-01'