0

我究竟如何格式化这个日期?

date = '2020-09-05 15:00:1605 Sep 2020, 15:00 '
datetime_object = datetime.strptime(date, '%Y-%m-%d,  %H:%M:%S')

当我这样做时,我得到一个错误。我究竟做错了什么?我的日期变量应该如何格式化?我认为毫秒是关闭的,我该如何格式化Sep 2020, 15:00

我得到的错误是

ValueError: time data '2020-09-05 15:00:1605 Sep 2020, 15:00 ' does not match format '%Y-%m-%d,  %H:%M:%S'
4

2 回答 2

1

问题是您的日期变量与您传递给的格式不匹配datetime.strptime

以下作品:

date = '2020-09-05 15:00:1605 Sep 2020, 15:00 '
datetime_object = datetime.strptime(date[ : 19 ], '%Y-%m-%d %H:%M:%S')

请注意,我05 Sep 2020, 15:00 通过切片date变量删除了 ,并稍微更改了日期格式字符串以删除逗号和它后面的双空格。

现在它工作正常:

>>> datetime_object
datetime.datetime(2020, 9, 5, 15, 0, 16)
于 2020-09-10T00:15:44.863 回答
0

我建议用 a 检查输入regex并解析到 datetimefromisoformat是否匹配。

from datetime import datetime
import re

s = '2020-09-05 15:00:1605 Sep 2020, 15:00 '

 # assuming you need this often, run a compile
p = re.compile('[0-9]{4}\-[0-9]{2}\-[0-9]{2}\ [0-9]{2}\:[0-9]{2}\:[0-9]{2}')
m = re.search(p, s)

if m:
    print(repr(datetime.fromisoformat(m.group(0))))
    
# datetime.datetime(2020, 9, 5, 15, 0, 16)
于 2020-09-10T06:37:05.513 回答