为什么会报错?
>>> an = datetime.datetime.now(); an
datetime.datetime(2020, 3, 8, 22, 52, 19, 256487)
>>> datetime.datetime.strftime(an, '%-d')
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
datetime.datetime.strftime(an, '%-d')
ValueError: Invalid format string
Run Code Online (Sandbox Code Playgroud)
Python 文档包含 C 标准(1989 版)所需的所有格式代码,这些代码适用于所有具有标准 C 实现的平台。请注意,C 标准的 1999 版本添加了额外的格式代码。这些包括非零填充数字的代码,可以通过在百分比 (%) 符号后附加短划线 (-) (UNIX) 或哈希 (#) (Windows) 来获得。
所以,这适用于 Linux:
datetime.datetime.strftime(an, '%-d')
Run Code Online (Sandbox Code Playgroud)
这适用于 Windows:
datetime.datetime.strftime(an, '%#d')
Run Code Online (Sandbox Code Playgroud)
有趣的是,我在Python strftime docs 中没有看到它们中的任何一个。整个功能在 Python 中也可能是无意的。