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

データのタイムゾーンはプロジェクトごとに定義されています。Mixpanel の Web UI の右下にある geat アイコンをクリックします。ウィンドウが開きます。データ管理セクションには、タイムゾーン フィールドがあります。UTC に設定します。これは、Mixpanel が入ってくるデータを記録するタイムゾーンです。過去のデータには影響しないことに注意してください。その後、あなたがしたようにタイムゾーンを変換できます。

于 2016-02-26T18:34:53.640 に答える
0

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

そのタイムスタンプが東部標準時の午後 4 時 44 分であるとはutcfromtimestamp()思えませんが、コードをもう少しシンプルにしたい場合はお勧めできます。

    dt = datetime.datetime.utcfromtimestamp(ts)
于 2014-03-09T23:05:10.663 に答える