この記事のポイント
Pythonで日付を扱うためのdateオブジェクトについて、初心者の方でも理解できるように基礎から応用まで丁寧に解説していきます。本記事では、実行可能なコード例を多数掲載していますので、ぜひ実際に試しながらスキルアップを実感してください。
この記事を読むことで、次のような知識を得られます。
- datetimeモジュールで日付データを管理する基本機能
- dateオブジェクトの作成方法と日付の取得や計算などの基本操作
- 実務で使える日付の比較、差分計算、フォーマット変換などの実践技術
学習と実践を通して、Pythonのdateオブジェクトの理解を深め、実務で使えるスキルへとつなげていきましょう。
dateとは?
Pythonのdateは、datetimeモジュールに含まれる日付用オブジェクトで、日付の処理を行う際の基本的な機能です。年、月、日の情報を保持し、日付に関するさまざまな操作に役立ちます。これを使えば日付を取得したり、特定の日付を作成したり、2つの日付の差を計算したりするのも簡単です。
特にカレンダー計算やスケジュール管理など、日付が重要な処理を行う際に活用されます。時間情報は含まれず、日付だけを扱う場面で便利です。
【関連】
Pythonをもっと詳しく学ぶならpaizaラーニング
基本構文
Pythonのdateを使うには、まずdatetimeモジュールからdateクラスをインポートします。日付の作成方法は主に2通りあり、今日の日付を取得する方法と、特定の日付を指定して作成する方法です。dateオブジェクトからは年、月、日をそれぞれ個別に取り出すこともできます。以下に基本的な使い方を示します。
# datetime.date を用いた日付操作のサンプル
from datetime import date
SPECIFIC_DATE = date(2024, 1, 15)
def main() -> None:
# 今日の日付を取得
today = date.today()
print(today)
# 特定の日付を表示
print(SPECIFIC_DATE)
# 年、月、日を個別に取得
print(SPECIFIC_DATE.year)
print(SPECIFIC_DATE.month)
print(SPECIFIC_DATE.day)
if __name__ == "__main__":
main()
出力結果(例)
2025-11-15
2024-01-15
2024
1
15
※このページ内のコードの出力結果の一部で、実行した時刻により変動するものがあります。また、日時はUTC形式で計算されるため、日本時間での計算結果と異なる場合があります
実用例
ここからはPythonのdateを使った実践的なコード例を見ていきましょう。日常的なプログラミングでよくあるケースを想定しながら、コンパクトな実装方法を解説します。
各サンプルコードには動物を使った出力例を含めており、実際に動かしながら理解を深められるように工夫しました。初めての方でも順番に読み進めることで、dateオブジェクトの扱い方が自然と身につきます。実務でも応用できる技術ばかりですので、ぜひ手元で試してみてください。
今日の日付を取得して表示
今日の日付を取得し、わかりやすい形式で表示するコード例です。date.todayメソッドを使うことで、プログラムを実行した日の日付情報を簡単に取得できます。
# 今日の日付を使用してメッセージを表示
from datetime import date
def main() -> None:
today = date.today()
print(f"今日は{today}です")
print(f"ネコの誕生日パーティーは{today}に開催されます")
if __name__ == "__main__":
main()
出力結果(例)
今日は2024-03-15です
ネコの誕生日パーティーは2024-03-15に開催されます
特定の日付を作成して曜日を取得
指定した日付から曜日の情報を取り出すコード例です。weekday()メソッドを使うと、月曜日を0として日曜日を6とする数値で曜日を取得できます。
# 指定した日の曜日を判定して散歩日を表示
from datetime import date
ANIMAL_DAY = date(2024, 5, 20)
WEEKDAY_NAMES = ["月", "火", "水", "木", "金", "土", "日"]
def main() -> None:
weekday = ANIMAL_DAY.weekday()
print(f"イヌの散歩は{ANIMAL_DAY}({WEEKDAY_NAMES[weekday]}曜日)です")
if __name__ == "__main__":
main()
出力結果
イヌの散歩は2024-05-20(月曜日)です
2つの日付の差分を計算
2つの日付の間がどれだけ離れているかを計算するコード例です。dateオブジェクト同士を引き算することで、差分をtimedeltaオブジェクトとして取得できます。
# 旅の期間(日数)を計算して表示
from datetime import date, timedelta
START_DATE = date(2024, 1, 1)
END_DATE = date(2024, 12, 31)
def main() -> None:
difference: timedelta = END_DATE - START_DATE
print(f"ウサギの旅は{difference.days}日間続きます")
if __name__ == "__main__":
main()
出力結果
ウサギの旅は365日間続きます
日付を文字列に変換して出力
日付を見やすい文字列形式に変換するコード例です。strftime()メソッドを使うと、年月日の表示形式を自由にカスタマイズできます。
# 指定した日付をフォーマットして誕生日を表示する
from datetime import date
EVENT_DATE = date(2024, 7, 7)
def main() -> None:
formatted = EVENT_DATE.strftime("%Y年%m月%d日")
print(f"ゾウの誕生日は{formatted}です")
if __name__ == "__main__":
main()
出力結果
ゾウの誕生日は2024年07月07日です
誕生日までの残り日数を計算
未来の日付までの残り日数を計算するコード例です。今日の日付と目標日の差分を求めることで、あと何日かを簡単に知ることができます。
# 誕生日までの日数を計算して表示する
from datetime import date
ANIMAL_NAME = "キリン"
def main() -> None:
today = date.today()
birthday_this_year = date(today.year, 12, 31)
# 今年の誕生日が過ぎていたら、来年の誕生日にする
if birthday_this_year < today:
birthday_this_year = date(today.year + 1, 12, 31)
days_left = (birthday_this_year - today).days
print(f"{ANIMAL_NAME}の誕生日まであと{days_left}日です")
if __name__ == "__main__":
main()
出力結果(例)
キリンの誕生日まであと285日です
日付のリストを作成して並び替え
複数の日付をリストに格納し、古い順に並び替えるコード例です。dateオブジェクトは比較演算子で大小比較ができるため、sorted関数で簡単にソートできます。
# 日付を古い順にソートして表示する
from datetime import date
DATES = [date(2024, 5, 15), date(2024, 2, 10), date(2024, 8, 3)]
def main() -> None:
sorted_dates = sorted(DATES)
print("パンダの訪問予定日(古い順):")
for d in sorted_dates:
print(d)
if __name__ == "__main__":
main()
出力結果
パンダの訪問予定日(古い順):
2024-02-10
2024-05-15
2024-08-03
うるう年の判定を実行
指定した年がうるう年かどうかを判定するコード例です。2月29日の日付を作成できるかどうかで判定することもできますが、ここでは年を4で割る方法を示します。
# 指定した年がうるう年かどうかを判定して表示
from datetime import date
def is_leap_year(year: int) -> bool:
"""指定した年がうるう年かどうかを判定"""
return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
def main() -> None:
"""年を指定し判定結果を出力"""
year = 2024
result = "うるう年" if is_leap_year(year) else "平年"
print(f"ライオンが生まれた{year}年は{result}です")
if __name__ == "__main__":
main()
出力結果
ライオンが生まれた2024年はうるう年です
まとめ
Pythonのdateは日付を扱うための基本的なツールです。今日の日付の取得から日付の計算、フォーマット変換まで幅広い操作が可能で、プログラミング初心者でも直感的に使えます。
dateの活躍する場面
- スケジュール管理システムやカレンダーアプリケーション開発
- データ分析における期間の集計や時系列データ処理
- 予約システムや在庫管理での日付ベース処理
重要なポイント
- datetimeモジュールからのインポートと基本的な作成方法の理解
- 日付同士の演算による差分計算や比較操作の活用
- strftimeメソッドによる柔軟な日付フォーマット変換技術
Pythonのdateをマスターすることで、日付に関わるあらゆるプログラムを効率的に開発できるようになります。この記事で紹介した基本構文と実用例を繰り返し練習し、自分のプロジェクトに応用してみてください。
dateオブジェクトは時刻情報を持たないシンプルな構造なので、純粋に日付だけを扱いたい場合に最適です。さらに高度な処理が必要な場合は、datetimeオブジェクトやtimedeltaオブジェクトと組み合わせることで、より複雑な日時計算も実現できます。実際に手を動かしてコードを書くことが上達への近道ですので、ぜひ今日から活用してみてください。
レベルを更に上げたい方はpaizaプログラミングスキルチェックへ