【发布时间】:2014-04-13 20:07:38
【问题描述】:
我有一个 UTC 时间戳和一个时区偏移时间戳(均以毫秒为单位):
utc_time = 1394452800000
timezoneoffset = -14400000
如果我想获得datetime,我会这样做:
print datetime.utcfromtimestamp(utc_time/1000)
>>>2014-03-10 12:00:00
我怎样才能本地化这个日期时间,但最终对象也能感知时区?
如果我除以timezoneoffset,-14400000/(3600*1000) = -4(小时)。所以最终的输出应该是:
>>>2014-03-10 08:00:00-04:00
我的尝试:
from pytz import timezone
from dateutil.tz import tzoffset
utc_time = 1394452800000
timezoneoffset = -14400000
tzinfooff = tzoffset(None, timezoneoffset/1000)
print timezone(tzinfooff).localize( datetime.utcfromtimestamp(utc_time/1000) )
>>>Traceback (most recent call last):
File "/Users/dionysis_lorentzos/Desktop/cmdline copy.py", line 25, in <module>
print timezone(tzinfo2).localize( datetime.utcfromtimestamp(time/1000) ).isoformat()
File "/usr/local/lib/python2.7/site-packages/pytz/__init__.py", line 162, in timezone
if zone.upper() == 'UTC':
AttributeError: 'tzoffset' object has no attribute 'upper'
【问题讨论】:
-
08:00:00-04:00?或12-4? -
timezone没有偏移;我不确定是否有任何pytz可以调用。 -
@zhangxaochen
utc_time时间戳在 UTC 时区而不是本地时区(如果我理解正确你的问题)。 -
@MartijnPieters 所以没有可能的解决方法?
-
我没这么说。 :-)
标签: python pytz python-dateutil python-datetime