为什么是time.strptime(" 2014年9月30日","%b。%d,%Y")不工作

时间:2015-08-13 14:42:25

标签: python datetime

我试图在python中解析日期。我的代码适用于除Sept之外的所有其他月份

这是我的代码

time.strptime("Sept. 30, 2014", "%b. %d, %Y")

我收到此错误

ValueError: time data 'Sept. 30, 2014' does not match format '%b. %d, %Y'

2 个答案:

答案 0 :(得分:5)

九月的缩写是9月,而不是9月。

>>> datetime.strptime("Sep. 30, 2014", "%b. %d, %Y")
datetime.datetime(2014, 9, 30, 0, 0)

Here's the list of all abbreviated month names for the en_US local.

答案 1 :(得分:0)

使用“9月号”代替“9月”似乎很常见。正如@ morgan-thrapp所建议的那样,你必须用后者替换前者:

time.strptime("Sept. 30, 2014".upper().replace("SEPT", "SEP"), "%b. %d, %Y")

使用upper()会将所有小写字符转换为大写字母,因此replace的使用更为直接。