Python:使用不同时区将时间字符串转换为主机时区datetime对象?

时间:2016-06-11 11:46:40

标签: python python-2.7 datetime timezone

我的主机有时区UTC,我正在尝试将PDT时间字符串转换为日期时间对象, 我使用了下面给出的代码片段,但它没有用

datetime_obj = datetime.datetime.strptime('Thu Jun 09 08:28:12 PDT 2016', '%a %b %d %H:%M:%S %Z %Y')

我收到此错误 -

  

ValueError:时间数据'Thu Jun 09 08:28:12 PDT 2016'不匹配   格式'%a%b%d%H:%M:%S%Z%Y'

我知道这是因为我的主持人的时区是UTC。但我无法找到解决这个问题的方法。我需要将PDT字符串转换为UTC感知时区。

我被封锁了。任何帮助赞赏。

1 个答案:

答案 0 :(得分:1)

您可以在TZINFOS中拥有许多不同的值。这将支持您的代码遇到不同的时区时不会失败。

解析字符串然后将PDT日期时间转换为UTC将在下面解释。

import pytz
import dateutil.parser
TZINFOS = { 'PDT': pytz.timezone('US/Pacific')}
datetime_obj = dateutil.parser.parse('Thu Jun 09 08:28:12 PDT 2016', tzinfos= TZINFOS)
print datetime_obj
datetime_in_utc = datetime_obj.astimezone(pytz.utc) # convert to UTC
print datetime_in_utc

print pytz.all_timezones将为您提供所有可能的值。