2017-09-05 10 views
-1

datetime.tzinfoモジュールの使い方はわかりません。私はdatetimeデータをUTCからローカルのタイムゾーンに変換しなければなりません。もし '+2'(これはgmt + 2を意味します)を取得したら、これをtzinfoオブジェクトにどのように変換すればいいですか?Pythonでdatetime.tzinfoを使用するには?

また、自動的に夏時間を適用してUTCからローカルタイムゾーンに変換することはできますか?自動的に1時間を引くように設定するにはdstの間にのみ?

答えて

1

Pythonは実際にはタイムゾーンをうまく実装していません。 documentationによると、tzinfoは、ユーザーによって実装されることを意図した抽象クラスです。

タイムゾーンを扱うための第三者pytzモジュールをお勧めします。

0

tzoffsetを使用して、取得するタイムゾーンオフセットを設定できます。変数utc_dtは、それがそうでない場合は、ちょうどあなたのオリジナルの日時を属性として右UTCタイムゾーンを持っていることを確認するために使用された

from dateutil.tz import tzoffset 

utc_dt = your_datetime.replace(tzinfo=tzoffset("UTC+0",0)) 
local_dt = utc_dt.astimezone(tzoffset("UTC+{}".format(n), n*60*60)) 

:あなたは「2」を取得する場合n = 2ように、例えば、その文字列を解析動作しません。その後、ターゲットの現地時間のオフセットを秒単位で設定できます。

タイムゾーン内の一部の国では適用されない可能性があるため、DSTを適用することは可能かどうかはわかりません。 "Europe/Vienna"のような正確なローカリゼーションがある場合は、pytzライブラリとdatetime.dst()メソッドを使用して1時間を減算するかどうかを判断できます。

+0

ありがとうございます。私はそれを試してみます。 –

関連する問題