如何在Python中使用日期格式来显示小年份的4位数字?

问题描述 投票:0回答:2

如果我正确理解了标准库文档中的日期格式,则以下

from datetime import date
date(1, 2, 3).strftime("%Y-%m-%d")

应该产生

"0001-02-03"
,但它却产生
"1-02-03"

我在 3.7-3.10 版本中尝试过,结果相同。我是不是错过了什么?

我可以仅使用日期时间格式代码让年份始终具有 4 位数字吗?据我所知,我可以单独将每个日期字段(例如

<date>.year
)格式化为以 0 填充的整数,并以这种方式形成字符串。

python-3.x date format
2个回答
1
投票

根据datetime库的

文档
,您需要手动将小于4位数宽度的年份补零。

The strptime() method can parse years in the full [1, 9999] range,
but years < 1000 must be zero-filled to 4-digit width.

你可以试试这个:

dt = date(1,2,3)
print(f'{dt.year:04}-{dt.month:02}-{dt.day:02}')

# output: 0001-02-03

0
投票

虽然我找不到它的文档

%4Y
在 Windows 和 Ubuntu 上的 3.10.11 上提供了 4 位填充输出

请注意,

%Y
在 Windows 上提供填充输出,但在 Ubuntu 上不提供

© www.soinside.com 2019 - 2024. All rights reserved.