首页 > 解决方案 > Python中的日期格式,带有偏移量和小时和分钟

问题描述

我在 csv 文件中有如下日期,我想将其加载到具有相同格式的 avro 文件中,

日期值:

2020-01-29 21:08:53.0041 +00:00

我尝试转换的格式如下:

%d.%m.%Y %H:%M:%S.%f +%h:%m

在 avro 文件中加载为 null 。

我在 avro 中提到的架构如下:

{
                "name": "requestdate",
                "type": [
                    "null",
                    "long"
                ],
                "default": null,
                "logicalType": "timestamp-millis",
                "doc": "requestdate"

有人可以帮我加载正确的格式吗

谢谢

标签: pythondateavro

解决方案


你可以使用datetime strptime方法。但是时区字段无效,因此您应该删除它的分号。您可以使用正则表达式来修复时区字段。

from datetime import datetime
import re

# example
dt = '2020-01-29 21:08:53.0041 +00:00'

# remove semicolon in timezone field
dt = re.sub(r"([+-]\d+):(\d+)$", r"\1\2", dt)

# parse
value = datetime.strptime(dt, '%Y-%m-%d %H:%M:%S.%f %z')

print(value)

输出

2020-01-29 21:08:53.004100+00:00

推荐阅读