Python 日期时间:十进制数的 strftime() 代码

Cev*_*vat 3 python datetime

为什么会报错?

>>> 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)

基于这个来源(sources1 , sources2)我预计“8”

zvo*_*one 6

您链接页面说:

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 中也可能是无意的。