日期时间异常,缩写为月份

时间:2013-08-14 02:45:50

标签: python

我无法理解以下示例中的内容

>>> datetime.datetime.strptime("Aug 10", "%b %y")
datetime.datetime(2010, 8, 1, 0, 0)

有道理%b是月份名称,%y是年份所以2010年8月对应datetime(2010, 8, 1, 0, 0)

但是,如果我将%y更改为%m,其中%m是月份的日期,则会变得奇怪

>>> datetime.datetime.strptime("Aug 10", "%b %m")
datetime.datetime(1900, 10, 1, 0, 0)

突然间它拒绝承认“八月”

1 个答案:

答案 0 :(得分:2)

您的代码无效的原因非常简单:%m不是日期,而是数字的月份。现在这个月首先匹配8月,然后是10,这就是你得到的。请尝试使用%d代替一天中的某一天。

>>> datetime.datetime.strptime('Aug 10', '%b %d')
datetime.datetime(1900, 8, 10, 0, 0)

另见8.1.7. strftime() and strptime() Behavior