gpt4 book ai didi

python - 在 Python、postgresql 中将字符串转换为 DateTime 到 UTC 格式

转载 作者:太空宇宙 更新时间:2023-11-03 11:19:25 24 4
gpt4 key购买 nike

我收到 2 种不同格式的字符串格式的日期时间。但是当存储在 PostgreSql 数据库中时,它必须以 UTC 格式存储。

Format 1 : 2017-08-25 01:10:56.910523 -04:00
Format 2 : 2017-08-25 01:10:56.910523 AMERICA/NEW_YORK

尝试在 PostgreSql 中使用 timestamptz,但我猜它似乎不理解 AMERICA/NEW_YORK 那么如何在数据库中转换和存储 UTC 格式

-4:00 和 AMERICA/NEW_YORK 只是示例,但它可以是任何其他内容。

最佳答案

我会这样做:首先尝试完全解析它,如果失败则单独解析。

from dateutil import parser, tz
utc_tz = tz.gettz('UTC')

times = ['2017-08-25 01:10:56.910523 -04:00',
'2017-08-25 01:10:56.910523 AMERICA/NEW_YORK']

for t in times:
try:
utc_time = parser.parse(t).astimezone(utc_tz)
except ValueError as e:
_date, _time, _tz = t.split(' ')
_time_wo_tz = parser.parse(' '.join([_date, _time]))
_parsed_tz = tz.gettz(_tz.title())
_time_w_tz = _time_wo_tz.replace(tzinfo=_parsed_tz)
utc_time = _time_w_tz.astimezone(utc_tz)

print(utc_time)

关于python - 在 Python、postgresql 中将字符串转换为 DateTime 到 UTC 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45958129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com