Pythonのdatetime
ライブラリは日付と時間を扱うためのもので、zoneinfo
はIANAのタイムゾーンデータベースをサポートした具体的なタイムゾーン実装を提供します。これにより、特定のタイムゾーンに基づいた日時の操作が可能になります。
zoneinfoの基本的な使い方
以下に、zoneinfo
を使用して日時を操作する基本的なコードを示します。
from zoneinfo import ZoneInfo
from datetime import datetime, timedelta
# タイムゾーンを指定して日時を作成
dt = datetime(2020, 10, 31, 12, tzinfo=ZoneInfo("America/Los_Angeles"))
print(dt) # 2020-10-31 12:00:00-07:00
# タイムゾーン名を取得
print(dt.tzname()) # 'PDT'
# 日時の算術演算
dt_add = dt + timedelta(days=1)
print(dt_add) # 2020-11-01 12:00:00-08:00
print(dt_add.tzname()) # 'PST'
このコードでは、まずZoneInfo
を使用してAmerica/Los_Angeles
タイムゾーンを指定し、そのタイムゾーンに基づいて日時を作成しています。次に、tzname()
メソッドを使用してタイムゾーン名を取得しています。最後に、timedelta
を使用して日時の算術演算を行い、その結果を表示しています。
注意点
zoneinfo
はシステムのタイムゾーンデータを使用しますが、システムのタイムゾーンデータが利用できない場合は、PyPIで利用可能なtzdata
パッケージを使用します。したがって、クロスプラットフォームの互換性を必要とするプロジェクトでは、tzdata
への依存関係を宣言することを推奨します。
以上、Pythonのdatetime
とzoneinfo
の基本的な使い方について説明しました。これらのライブラリを活用することで、タイムゾーンに基づいた日時の操作を容易に行うことができます。