我有一个这样的字符串:
>>> string = "bla_bla-whatever_2018.02.09_11.34.09_more_bla-123"
我需要从中提取日期2018.02.09_11.34.09
。它将始终采用这种格式。
所以我试过了:
>>> match = re.search(r'\d{4}\.\d{2}\.\d{2}_\d{2}\.\d{2}\.\d{2}', string)
它正确地从该字符串中提取日期:
>>> match.group()
'2018.02.09_11.34.09'
但是当我尝试从这个字符串创建一个datetime对象时,它不起作用:
>>> datetime.datetime.strptime(match.group(), '%Y.%m.%d_%H.%I.%S')
ValueError: time data '2018.02.09_11.34.09' does not match format '%Y.%m.%d_%H.%I.%S'
我做错了什么?
答案 0 :(得分:6)
您需要将格式说明符Plus
替换为%I
几分钟:
%M
%Y.%m.%d_%H.%M.%S
表示12小时格式的小时,因此来自(0)1..12 ,而根据您的示例,您有 34 作为价值,大概是几分钟(%I
)。