我正在使用MixPanel并尝试转换我在查看事件时获得的['property'] ['time']字段。我认为这是一个UTC时间,这就是我试图将值转换回我当地时区的方式。
from dateutil import tz
from_zone = tz.tzutc()
to_zone = tz.tzlocal()
def convert_from_mix_time(mix_time):
utc_date = datetime.fromtimestamp(int(mix_time))
utc_date = utc_date.replace(tzinfo=from_zone)
local_date = utc_date.astimezone(to_zone)
return local_date
以MixPanel时间1394199886(这应该是美国东部时间下午4:44),UTC时间是2014-03-07 08:44:46 + 00:00,转换时间是2014-03-07 03:44 :46(绝对不是正确的时间)。有人知道如何进行转换吗?
答案 0 :(得分:0)
我没有将时间戳记作为美国东部时间下午4:44,但如果您希望代码更简单,我可以推荐utcfromtimestamp()
。
dt = datetime.datetime.utcfromtimestamp(ts)
答案 1 :(得分:0)
您需要规范化日期时间对象:
def convert_mix_time(mix_time):
utc_date = datetime.utcfromtimestamp(int(mix_time))
utc_date = utc_date.replace(tzinfo=from_zone)
local_date = utc_date.astimezone(to_zone)
return from_zone.normalize(local_date)
答案 2 :(得分:0)
每个项目都定义了数据的timzeone。单击Mixpanel Web UI右下角的geat图标。它会打开一扇窗户。在数据管理部分,有一个时区字段。将其设置为UTC。这是时区Mixpanel将记录进来的数据。请注意,它不会影响过去的数据。之后,您可以像转换时区一样转换时区。