3

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

4

3 回答 3

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)
于 2014-06-03T18:54:58.530 回答
0

我没有得到那个时间戳是美国东部标准时间下午 4:44,但utcfromtimestamp()如果你想让你的代码更简单一点,我可以推荐。

    dt = datetime.datetime.utcfromtimestamp(ts)
于 2014-03-09T23:05:10.663 回答
0

数据的时间按项目定义。单击 Mixpanel 的 Web UI 右下角的 geat 图标。它会打开一个窗口。在数据管理部分有一个时区字段。将其设置为 UTC。那是时区 Mixpanel 将记录传入的数据。请注意,它不会影响过去的数据。之后,您可以像以前一样转换时区。

于 2016-02-26T18:34:53.640 回答