タイムゾーンのインスタンスを生成する
datetiem モジュールに含まれる timezone クラスは tzinfo クラスのサブクラスでタイムゾーンに関する値を持ちます。ここでは UTC (協定世界時)との時間差を指定して timezone クラスのインスタンスを生成する方法について解説します。
(Last modified: )
目次
timezoneクラス
timezone クラスはタイムゾーンの値を扱うクラスです。コンストラクタは次のようになっています。
class datetime.timezone(offset, name=None)
引数の offset には時刻差を表すオブジェクトである timedelta クラスのインスタンスを指定します。
timedelta クラスは時刻差の値を扱うクラスです。コンストラクタは次のようになっています。
class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
引数には、時刻差をあらわす日(days)、秒(senconds)、マイクロ秒(microseconds)、ミリ秒(milliseconds)、分(minutes)、時(hours)、週(weeks)の値を指定します。
タイムゾーンの場合は、 UTC との時間に関する差を指定します。東京(日本)のタイムゾーンを取得するには hours=9 、ニューヨーク(アメリカ合衆国)のタイムゾーンを取得するには hours=-5 を指定します。具体的には次のように記述します。 timezone クラスおよび timedelta クラスは datetime モジュールに含まれます。
import datetime tokyo_tz = datetime.timezone(datetime.timedelta(hours=9)) print(tokyo_tz) >> UTC+09:00 ny_tz = datetime.timezone(datetime.timedelta(hours=-4)) print(ny_tz) >> UTC-04:00
なお UTC のタイムゾーンを取得するには時間差を 0 に指定して取得することができますが、代わりに timezone クラスの属性値である timezone.utc を使用することもできます。
import datetime utc_tz1 = datetime.timezone(datetime.timedelta(0)) print(utc_tz1) >> UTC ny_tz2 = datetime.timezone.utc print(utc_tz1) >> UTC
次のサンプルを見てください。
import datetime print(datetime.timezone(datetime.timedelta(hours=9))) >> UTC+09:00 print(datetime.timezone(datetime.timedelta(hours=-4))) >> UTC-04:00 print(datetime.timezone.utc) >> UTC
UTC との時間差を指定してタイムゾーンを表すインスタンスを作成することができました。
-- --
UTC (協定世界時)との時間差を指定して timezone クラスのインスタンスを生成する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。