web-dev-qa-db-ja.com

システムのローカルタイムゾーンをpython

奇妙に思えますが、PythonでPandas/pytzを使用してローカルタイムゾーンを見つける簡単な方法が見つかりません。

できます:

>>> pd.Timestamp('now', tz='utc').isoformat()
Out[47]: '2016-01-28T09:36:35.604000+00:00'
>>> pd.Timestamp('now').isoformat()
Out[48]: '2016-01-28T10:36:41.830000'
>>> pd.Timestamp('now').tz_localize('utc') - pd.Timestamp('now', tz='utc')
Out[49]: Timedelta('0 days 01:00:00')

どちらが私にタイムゾーンを与えますが、これはおそらく最良の方法ではありません... pytzまたはpandasにシステムのタイムゾーンを取得するコマンドはありますか? (できればpython 2.7に)

14
ntg

pytzまたはpandasを使用してこれを行うことはできないと思いますが、いつでも python-dateutil または tzlocal をインストールできます。

from dateutil.tz import tzlocal
datetime.now(tzlocal())

または

from tzlocal import get_localzone
local_tz = get_localzone()
21
Selcuk

time.timezone が機能するはずです。

UTCの西の秒単位のローカル(非DST)タイムゾーンのオフセット(ほとんどの西ヨーロッパでは負、米国では正、英国ではゼロ)。

3600で除算すると、オフセットが時間単位で得られます。

import time

print(time.timezone / 3600.0)

追加のPythonライブラリは必要ありません。

16
Martin Evans

Pytz/Pandasは使用していませんが、他の回答も使用していないため、mac/linuxで使用しているものを投稿する必要があります。

import subprocess
timezone = subprocess.check_output("date +%Z")

他の答えに対する利点:夏時間を尊重し、追加のライブラリをインストールする必要がありません。

1
jeremysprofile