私はばかげた問題を抱えています。Facebookユーザーデータを解析していて、タイムゾーンを数値として取得しています。
タイムゾーン:UTCからのユーザーのタイムゾーンオフセット
私にとって('America/Argentina/Buenos_Aires'
)それは-3です。
さて、どうすればその数をに変換できpytz.timezone
ますか?
ありがとうございました!
1:1の対応はないので、無効になると思われるいくつかの仮定を行わずにそれを行う方法はありません。
tzinfo
オフセットをゾーンに結び付けようとせずに、オフセットを直接エンコードする独自のクラスを作成できます。
@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']
# ...
tzinfo.tznameを使用してゾーン名を取得できます。