Python:将日期字符串转换为UTC



我正在解析一个第三方网站html,其日期和时间始终为英国时间格式,但是它们在源中没有任何时区信息。使用dateTime.strptime()将字符串转换为对象很容易,但是如何添加时区信息?

最终,我需要以UTC格式将这些字符串转换为DateTime对象。该代码将始终在时区意识到的PC上运行,即DateTime.Now()将返回英国时间。

temp = '07/12/2017 13:30'
dt = datetime.strptime(temp, '%d/%m/%Y %H:%M')

有更好的方法吗?

offset = datetime.now() - datetime.utcnow()
dt -= offset

使用pytz

import datetime
import pytz
temp = '07/12/2017 13:30'
dt = datetime.strptime(temp, '%d/%m/%Y %H:%M')
timezone = pytz.timezone("Etc/Greenwich")
d_aware = timezone.localize(dt)
d_aware.tzinfo
> <DstTzInfo 'Etc/Greenwich' PST-1 day, 16:00:00 STD>
d_aware
datetime.datetime(2017, 12, 7, 13, 30, tzinfo=<StaticTzInfo 'Etc/Greenwich'>)

有一些好的库,使与日期一起工作变得更加容易。我喜欢dateparser,parseDateTime和箭头;

import dateparser as dp
dt = dp.parse('07-12-2017 13:30 PST')
print (dt)
dt = dp.parse("Yesterday at 3:00am EST")
print(dt)

2017-07-12 13:30:00-08:00
2017-12-06 17:07:07.557109-05:00

相关内容

  • 没有找到相关文章

最新更新