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のタイムゾーンで作成され、出力されます。