4

私はばかげた問題を抱えています。Facebookユーザーデータを解析していて、タイムゾーンを数値として取得しています。

タイムゾーン:UTCからのユーザーのタイムゾーンオフセット

私にとって('America/Argentina/Buenos_Aires')それは-3です。

さて、どうすればその数をに変換できpytz.timezoneますか?

ありがとうございました!

4

3 に答える 3

5

1:1の対応はないので、無効になると思われるいくつかの仮定を行わずにそれを行う方法はありません。

tzinfoオフセットをゾーンに結び付けようとせずに、オフセットを直接エンコードする独自のクラスを作成できます。

于 2012-07-25T19:47:17.457 に答える
2

@Mark Ransomが言ったように、特定の日付で複数pytz.timezoneのUTCオフセットが同じになる場合があります。特定の日付のマッピングを印刷できます。

#!/usr/bin/env python
from collections import defaultdict
from datetime import datetime

import pytz # $ pip install pytz

dt = datetime.now(pytz.utc) # current time in UTC
zone_names = defaultdict(list)
for tz in pytz.common_timezones:
    zone_names[dt.astimezone(pytz.timezone(tz)).utcoffset()].append(tz)

for offset, zone in sorted(zone_names.items()):
    print("%.1f %s" % (offset.total_seconds() / 3600, zone))
# -> -11.0 ['Pacific/Midway', 'Pacific/Niue', 'Pacific/Pago_Pago']
# ...
于 2014-09-13T16:58:00.700 に答える
-2

tzinfo.tznameを使用してゾーン名を取得できます。

于 2012-07-25T19:40:53.293 に答える