我有一个日期字符串,看起来像这样:Tue Jul 19 2016 14:00:00 GMT-0700 (PDT)
。是否有一个库或函数可以做到这一点?
print get_tz('Tue Jul 19 2016 14:00:00 GMT-0700 (PDT)')
'US/Pacific'
我有一个日期字符串,看起来像这样:Tue Jul 19 2016 14:00:00 GMT-0700 (PDT)
。是否有一个库或函数可以做到这一点?
print get_tz('Tue Jul 19 2016 14:00:00 GMT-0700 (PDT)')
'US/Pacific'
我同意@MattJohnson的观点,当解析短时区名称为tzinfo
对象时,您需要非常小心。但是,如果您有一个特定的上下文环境,只有一个读法有意义(例如,您正在解析在美国生成的时间戳),则可以使用python-dateutil
的parse
函数的tzinfos
参数。
这是一个示例,说明如何使用它:
from dateutil import tz
from dateutil.parser import parse
ET = tz.gettz('US/Eastern')
CT = tz.gettz('US/Central')
MT = tz.gettz('US/Mountain')
PT = tz.gettz('US/Pacific')
us_tzinfos = {'CST': CT, 'CDT': CT,
'EST': ET, 'EDT': ET,
'MST': MT, 'MDT': MT,
'PST': PT, 'PDT': PT}
dt_est = parse('2014-01-02 04:00:00 EST', tzinfos=us_tzinfos)
# >>> dt_est.tzinfo
# tzfile('/usr/share/zoneinfo/US/Eastern')
dt_pst = parse('2016-03-11 16:00:00 PST', tzinfos=us_tzinfos)
# >>> dt_pst.tzinfo
# tzfile('/usr/share/zoneinfo/US/Pacific')
时区缩写
仍然存在歧义,但我认为它们更像是“好用”的东西,而不是依赖于正确时间的东西。您认为通过使用时区偏移量
每次都能获得正确的时间,并且最后只是使用缩写作为漂亮格式的一部分,这种做法是否可行? - Alex CoryTue Jul 19 2016 14:00:00 GMT-0700 (PDT)
发送日期。这样做可以确保每次服务器都能准确读取客户端的偏移量。因此,考虑到这一点,这种方法是否符合我的预期呢? - Alex CoryAmerica/Los_Angeles
)。然后,您可以在Python中使用pytz
或dateutil
。 - Matt Johnson-Pint