不支持的格式字符 'm'

unsupported format character 'm'

我正在尝试将 now.month 转换为十进制,因此它看起来像 01 而不是 1。代码是:

import datetime
now = datetime.datetime.now()
monthstr = ".%m" % now.month

它在 %d

这一行中有效
daystr = "file_%d" % now.day

我得到的错误是

ValueError: unsupported format character 'm' (0x6d) at index 2

我也试过新类型 {:%m}。错误是一样的。 我想念任何图书馆吗?或者有没有别的办法,除了在 Jan 到 September 的月份里加 0

Python v.3.6.3

这是因为%d不代表days。它代表数字,在使用字符串格式时是数字的占位符。

你也应该用几个月。

monthstr = ".%d" % now.month

由于您希望格式为 01 and not like 1,请使用 @user3483203 .

您在这里使用了日期时间格式等字符串格式。字符串格式有其自己的 "mini-language",并且 m 在此语言中不是有效符号。

为了您的目的,最好使用 strftime

>>> now.strftime('.%m')
'.07'