标准化不同的日期格式

normalize different date formats

我正在尝试使用具有不同类型(字符串)日期值的 XML 数据,例如:

'Sun, 04 Apr 2021 13:32:26 +0200'

'Sun, 04 Apr 2021 11:52:29 GMT'

我想将这些保存在具有日期时间字段的 Django 对象中。

我编写的用于转换 str 日期时间的脚本如下:

def normalise(val):
    val = datetime.strptime(val, '%a, %d %b %Y %H:%M:%S %z')
    return val

虽然,这不适用于我抓取的每个日期时间值。例如,对于上面的两个示例,脚本对第一个有效,但对第二个崩溃。 标准化所有日期时间值的理想方法是什么?

dateutil 模块解析多种不同类型的格式。您可以找到文档 here

这是一个简单的例子:

if __name__ == '__main__':
    from dateutil.parser import parse
    date_strs = ['Sun, 04 Apr 2021 13:32:26 +0200','Sun, 04 Apr 2021 11:52:29 GMT']
    for d in date_strs:
        print(parse(d))

输出:

2021-04-04 13:32:26+02:00
2021-04-04 11:52:29+00:00

如果还有其他日期格式未涵盖,您可以存储由 xml 元素名称键入的特定 python 格式字符串。