Pythonで特定の日時データをプログラム内で定義する場合、datetime クラスのコンストラクタを使用します。 作成した datetime オブジェクトからは、年、月、日、時、分、秒といった個別の情報を属性(アトリビュート)として簡単に取り出すことができます。
ここでは、特定の日時を指定してオブジェクトを生成し、その構成要素にアクセスする基本的な方法を解説します。
目次
datetimeコンストラクタの基本
datetime オブジェクトを生成する際は、最低でも「年・月・日」の3つの引数が必須です。時刻(時・分・秒・マイクロ秒)は省略可能で、省略した場合はすべて 0 になります。
# 構文
datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0)
実装例:イベント開始日時の定義と要素の取得
ここでは、架空のイベント「システムメンテナンス」の開始日時を定義し、その詳細情報を個別に表示するコードを実装します。
ソースコード
from datetime import datetime
# 特定の日時を指定してdatetimeオブジェクトを生成
# 引数の順序: 年, 月, 日, 時, 分, 秒
# ここでは 2025年12月31日 23時59分30秒 を指定
maintenance_start = datetime(2025, 12, 31, 23, 59, 30)
# 生成されたオブジェクトの確認
print(f"設定日時: {maintenance_start}")
print("-" * 20)
# 各属性(プロパティ)へのアクセス
# カッコ()は不要で、変数名.属性名 で取得できます
print(f"年 (year) : {maintenance_start.year}")
print(f"月 (month) : {maintenance_start.month}")
print(f"日 (day) : {maintenance_start.day}")
print(f"時 (hour) : {maintenance_start.hour}")
print(f"分 (minute) : {maintenance_start.minute}")
print(f"秒 (second) : {maintenance_start.second}")
実行結果
設定日時: 2025-12-31 23:59:30
--------------------
年 (year) : 2025
月 (month) : 12
日 (day) : 31
時 (hour) : 23
分 (minute) : 59
秒 (second) : 30
解説
- オブジェクトの生成:
datetime(2025, 12, 31, ...)のように数値を渡すことで、その日時の情報を持つオブジェクトが作られます。無効な日付(例:13月や32日など)を指定するとValueErrorが発生するため、入力値の妥当性には注意が必要です。 - 属性へのアクセス: 生成されたオブジェクトは
d.yearやd.hourのように、ドット.繋ぎで各要素にアクセスできます。これらはメソッドではなく属性であるため、呼び出しに()は不要です。条件分岐(例:if d.hour < 12:で午前中の判定など)で頻繁に使用されます。
