如果我正确理解标准库文档中的日期格式,则以下
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填充整数,并以此方式形成字符串。
根据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