不支持的格式字符“ m”

时间:2018-07-13 13:57:25

标签: python datetime string-formatting

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

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

它与%d一起在此行工作

daystr = "file_%d" % now.day

我得到的错误是

  

ValueError:索引2处不受支持的格式字符'm'(0x6d)

我还尝试了新的{:%m}类型。错误是一样的。 我想念任何图书馆吗?还是除了将1月到9月的月份加0之外还有另一种方法

Python v.3.6.3

2 个答案:

答案 0 :(得分:4)

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

您还应该使用几个月。

monthstr = ".%d" % now.month

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

答案 1 :(得分:3)

您在此处使用的字符串格式如datetime格式。字符串格式具有自己的"mini-language",并且 m 在该语言中不是有效的符号。

出于您的目的,最好使用strftime

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