python - 将缺少加号偏移日期时间字符串转换为正确的日期时间

标签 python python-3.x datetime

我主要收到这种格式的日期时间字符串 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/

相关文章:

python - 如何读取 Python socket recv

python - 浏览器在 django 管理(缓存,python/django)中更改页面内容时出现延迟

python - 如何在 pyparsing 中指定 token 顺序?

python - cx_freeze 不允许我使用 librosa Python3 制作图形用户界面

python-3.x - Python3 中的函数声明 '->' 是什么意思?

python - 在 django 模板中渲染动态变量

MySQL 选择最新的 DATETIME

Javascript 将相同的类添加到 div 而无需为每个 div 计算

java - 在 Ubuntu 10.04 上安装 PyLucene 3.0.3

python - 无需转换即可读取日期时间 Pandas