如何在MixPanel中转换时间属性?

时间:2014-03-08 16:33:12

标签: python mixpanel

我正在使用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(绝对不是正确的时间)。有人知道如何进行转换吗?

3 个答案:

答案 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将记录进来的数据。请注意,它不会影响过去的数据。之后,您可以像转换时区一样转换时区。