Как преобразовать свойство времени в 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 (это должно быть 16:44 EST), время UTC будет 2014-03-07 08:44:46+00:00, а преобразованное время будет 2014-03-07 03:44:46 ( точно не вовремя) Кто-нибудь знает, как сделать конвертацию?


person John    schedule 08.03.2014    source источник


Ответы (3)


Я не понимаю, что эта отметка времени должна быть 16:44 EST, но я могу порекомендовать utcfromtimestamp(), если вы хотите, чтобы ваш код был немного проще.

    dt = datetime.datetime.utcfromtimestamp(ts)
person M Svensson    schedule 09.03.2014
comment
Спасибо, немного очищает. - person John; 11.03.2014

Вам нужно нормализовать объект datetime:

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)
person brianabelson    schedule 03.06.2014
comment
Спасибо, но это дает мне в основном тот же ответ, что и раньше. Я сильно подозреваю, что временные метки mixpanel - это время PST, а не UTC. Только так я могу получить правильное время по восточному поясному времени. - person John; 07.06.2014

Временной интервал данных определяется для каждого проекта. Нажмите на значок geat в правом нижнем углу веб-интерфейса Mixpanel. Это откроет окно. В разделе «Управление данными» есть поле «Часовой пояс». Установите его в UTC. это часовой пояс, в котором Mixpanel будет записывать входящие данные. Обратите внимание, что это не повлияет на прошлые данные. После этого вы можете преобразовать часовой пояс, как вы это сделали.

person Tristan Boudreault    schedule 26.02.2016