如何将带时区的字符串转换为日期时间?

2 投票
1 回答
552 浏览
提问于 2025-04-17 23:10

我有一个这样的字符串:'2005-01-03 16:00:00:000 America/New_York',我想到的最简单的方法把它转换成日期时间实例如下:

ts=r'2005-01-03 16:00:00:000 America/New_York'
import re
pos=re.match(r'[\d\- :]*', ts).end()
tzs=ts[pos:]
tss=ts[:pos-5]
from pytz import timezone
tz=timezone(tzs)
from dateutil import parser
dt=parser.parse(tss)
d=tz.localize(dt)
print d

#2005-01-03 16:00:00-05:00

我觉得这个方法太复杂了……

所以有没有更简单的方法来实现这个呢?提前谢谢你~

1 个回答

4

你觉得这样怎么样:

import datetime
import pytz

ts = '2005-01-03 16:00:00:000 America/New_York'
tPart, tzPart = ts.rsplit(' ', 1)
dt = datetime.datetime.strptime(tPart, "%Y-%m-%d %H:%M:%S:%f")
tz = pytz.timezone(tzPart)
d = tz.localize(dt)

撰写回答