3

私はロンドンベースのサービスからデータを取得しており、ロンドンの現地時間で日付と時刻の情報を提供しています。したがって、冬は UTC、夏は BST(UTC+1) です。

内部的にはすべてに UTC を使用していますが、Python では、夏時間を考慮してロンドンのものを UTC に変換するにはどうすればよいですか?

DST ロールオーバーの時期があいまいな場合があることを理解していますが、それが今年の残りの期間に機能する限りは許容されます。

完全を期すために、私は彼らから次の情報を取得しています。

dt="2012-10-12T19:30:00"
lcnid="LDN"
locale="en-gb"
4

1 に答える 1

9

タイムゾーンオブジェクトを使用する必要があります。データが頻繁に変更されるため、これらはPython自体には付属していません。ただし、pytzライブラリは簡単にインストールできます。

変換例:

>>> import pytz
>>> import datetime
>>> bst = pytz.timezone('Europe/London')
>>> dt = datetime.datetime.strptime('2012-10-12T19:30:00', '%Y-%m-%dT%H:%M:%S')
>>> dt
datetime.datetime(2012, 10, 12, 19, 30)
>>> bst.localize(dt)
datetime.datetime(2012, 10, 12, 19, 30, tzinfo=<DstTzInfo 'Europe/London' BST+1:00:00 DST>)
>>> bst.localize(dt).astimezone(pytz.utc)
datetime.datetime(2012, 10, 12, 18, 30, tzinfo=<UTC>)
于 2012-10-12T09:09:15.723 に答える