Pythonには、日付と時刻を扱うための標準ライブラリであるdatetimeがあります。datetimeを使うと、日付と時刻のオブジェクトを作成し、日付と時刻の演算を行うことができます。

日付オブジェクトの作成

日付オブジェクトを作成するには、datetimeモジュールのdateクラスを使用します。dateクラスには、年、月、日の情報を渡して、日付オブジェクトを作成することができます。

from datetime import date

d = date(2023, 2, 20)
print(d)

上記のコードを実行すると、2023年2月20日の日付オブジェクトが作成され、出力されます。

時刻オブジェクトの作成

時刻オブジェクトを作成するには、datetimeモジュールのtimeクラスを使用します。timeクラスには、時、分、秒、マイクロ秒の情報を渡して、時刻オブジェクトを作成することができます。

from datetime import time

t = time(10, 30, 45)
print(t)

上記のコードを実行すると、10時30分45秒の時刻オブジェクトが作成され、出力されます。

日付と時刻のオブジェクトの作成

日付と時刻の両方の情報を持つオブジェクトを作成するには、datetimeモジュールのdatetimeクラスを使用します。datetimeクラスには、年、月、日、時、分、秒、マイクロ秒の情報を渡して、日付と時刻のオブジェクトを作成することができます。

from datetime import datetime

dt = datetime(2023, 2, 20, 10, 30, 45)
print(dt)

上記のコードを実行すると、2023年2月20日10時30分45秒の日付と時刻のオブジェクトが作成され、出力されます。

日付と時刻のフォーマットの変更

日付と時刻のオブジェクトをフォーマットに従って文字列に変換するには、strftimeメソッドを使用します。strftimeメソッドには、フォーマット文字列を渡して、指定したフォーマットに従った文字列を作成することができます。

from datetime import datetime

dt = datetime(2023, 2, 20, 10, 30, 45)
formatted_dt = dt.strftime("%Y年%m月%d日 %H時%M分%S秒")
print(formatted_dt)

上記のコ ードを実行すると、“2023年02月20日 10時30分45秒"というフォーマットに従った文字列が作成され、出力されます。

日付と時刻の演算

日付と時刻のオブジェクトに対して、演算を行うことができます。演算には、timedeltaクラスを使用します。timedeltaクラスには、日、秒、マイクロ秒の情報を渡して、時間の差分を表すオブジェクトを作成することができます。

from datetime import datetime, timedelta

dt1 = datetime(2023, 2, 20, 10, 30, 45)
dt2 = datetime(2023, 2, 25, 15, 20, 30)
delta = dt2 - dt1
print(delta)

上記のコードを実行すると、日付と時刻のオブジェクトの差分が、“5 days, 4:49:45"という形式で出力されます。

タイムゾーンの扱い方

Pythonでは、日付と時刻のオブジェクトに対して、タイムゾーンを指定することができます。タイムゾーンを指定するには、pytzモジュールを使用します。

from datetime import datetime
import pytz

tz = pytz.timezone('Asia/Tokyo')
dt = datetime(2023, 2, 20, 10, 30, 45, tzinfo=tz)
print(dt)

上記のコードを実行すると、2023年2月20日10時30分45秒の日付と時刻のオブジェクトが、Asia/Tokyoのタイムゾーンで作成され、出力されます。