【Python】日付データを扱うdate型の基本:年・月・日の取得と活用

Pythonで「時刻を含まない日付のみ」を扱いたい場合、datetime モジュールの date クラスを使用します。

生年月日や記念日、スケジュールの締め切り日など、時間(時・分・秒)の情報が不要なシーンで適しています。

ここでは、date オブジェクトの生成方法と、年・月・日それぞれの属性へのアクセス方法を解説します。

目次

dateオブジェクトの主要属性

date オブジェクトは以下の3つの属性を持ち、それぞれ整数(int)として値を取得できます。

属性名説明
yearint西暦(年)を表します。2025
monthint月を表します(1〜12)。10
dayint日を表します(1〜31)。12

実装例:製品リリース日の管理

特定の日付(製品の発売予定日)を定義し、その構成要素を表示するコード例です。また、実行日の日付を取得する today() メソッドも併せて紹介します。

ソースコード

from datetime import date

# 1. 特定の日付を指定して date オブジェクトを生成
# 引数: (年, 月, 日)
release_date = date(2025, 11, 20)

print(f"発売日 (date): {release_date}")
print("-" * 20)

# 各属性へのアクセス
# カッコ()は不要で、変数名.属性名 で取得します
print(f"年 (year)  : {release_date.year}")
print(f"月 (month) : {release_date.month}")
print(f"日 (day)   : {release_date.day}")

print("-" * 20)

# 2. 今日の日付を取得
# クラスメソッド today() を使用
today = date.today()
print(f"今日の日付 : {today}")

# 日付の比較も可能です
days_left = (release_date - today).days
print(f"発売まであと : {days_left} 日")

実行結果

発売日 (date): 2025-11-20
--------------------
年 (year)  : 2025
月 (month) : 11
日 (day)   : 20
--------------------
今日の日付 : 2025-12-15
発売まであと : -25 日

(※実行結果の「今日の日付」と「発売まであと」は、コードを実行した日によって変化します)

解説

datetime型との違い

datetime 型が「日付+時刻」を持つのに対し、date 型は純粋に「日付」だけの情報を持ちます。

そのため、d.hour や d.minute といった属性は存在せず、アクセスしようとすると AttributeError になります。

ゼロ埋めの必要性

取得した monthday は数値(例: 1, 5)です。「01」や「05」のようにゼロ埋めして表示したい場合は、文字列フォーマットを使用します。

# 例: 2025-01-05 のように整形
print(f"{release_date.year}-{release_date.month:02}-{release_date.day:02}")
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次