我主要收到这种格式的日期时间字符串
d_string = '2019-03-25 15:30:00+00:00'
我可以使用
date_converted = datetime.strptime(d_string , '%Y-%m-%d %H:%M:%S%z')
但有时,我会收到这样的日期字符串 '2019-03-25 15:30:00 00:00'
,其中不再有 plus
符号。如何验证这种类型的日期字符串是否为正确的 datetime
格式?我总是可以在日期字符串的最后第四个位置添加加号并进行验证,但这看起来不是更好的解决方案。
有更好的方法吗?
最佳答案
如果您想使用00:00
最后,您可以添加 +
要匹配所需的模式,您可以这样做
if re.fullmatch(r"[\d-]{10} [\d:]{8} [\d:]{5}", value):
value = re.sub(r"(?<=[\d:]{8})( )(?=[\d:]{5})", "+", value)
给予
values = ['2019-03-25 15:30:00+00:00', '2019-03-25 15:30:00 00:00']
for value in values:
if re.fullmatch(r"[\d-]{10} [\d:]{8} [\d:]{5}", value):
value = re.sub(r"(?<=[\d:]{8})( )(?=[\d:]{5})", "+", value)
date_converted = datetime.strptime(value, '%Y-%m-%d %H:%M:%S%z')
print(date_converted)
关于python - 将缺少加号偏移日期时间字符串转换为正确的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60845541/