Python date.todayの使い方

この記事のポイント

この記事では、Pythonで現在の日付を取得できるdate.todayについて、基本的な使い方から実践的な活用方法まで分かりやすく解説しています。

この記事を読むと、次のようなことが身に付きます。

  • date.todayの基本的な使い方がわかる
  • ファイル名やログに日付を使う方法がわかる
  • 誕生日からの日数計算や年齢計算など、日付を使った応用例がわかる

この記事を通して、date.todayの正しい使い方をマスターすれば、日付を扱うさまざまな処理に柔軟に対応できるプログラムが書けるようになります。

目次

date.todayとは?

date.todayは、Pythonのdatetimeモジュールを使って今日の日付を取得するためのメソッドです。

プログラムを実行している今の日付(年月日)を、カレンダーを見なくてもコンピュータから教えてもらえる便利な機能とイメージすると分かりやすいです。

取得した日付はdateオブジェクトとして扱われ、日付同士の計算(例:3日後の日付を求める)や、表示形式の変更(例:「2025/11/17」を「2025年11月17日」にする)など、さまざまな処理に活用できます。

また、取得した日付データから「年だけ」「月だけ」「日だけ」といった個別の情報を取り出すことも可能です。例えば、プログラムの実行履歴(ログ)をファイルに保存するときに日付を付けたり、データの期限を計算したりするなど、日付を扱いたい多くの場面で役立つ基本的な機能です。

date.todayの特徴

  • プログラムを実行した時点での「今日の日付」を取得する
  • datetimeモジュールをインポートして使用する
  • 取得した日付はdateオブジェクト(日付データ)として返される
  • 返された日付データから年、月、日の情報を個別に取得できる
  • 日付を使った計算や表示形式の変更、ログの記録など日付が必要な処理で広く使われる

【関連】
Pythonをもっと詳しく学ぶならpaizaラーニング

基本構文

date.todayの基本的な使い方を、具体的なコード例で確認してみましょう。date.todayを使うには、まずdatetimeモジュールからdate機能を使えるようにインポートします。

最も基本的な使い方は、date.today()と書くだけで、実行した「今日の日付」を取得できます。

from datetime import date today = date.today() print(today) print(f"今日は{today}です")

出力結果(例)

2025-11-25
今日は2025-11-25です

※このページ内のコードの出力結果は、実行した時刻により変動します。また、時刻はUTC形式で計算されるため、日本時間での計算結果と異なる場合があります

この例では、まずfrom datetime import dateでdate機能を使えるようにしています。次にdate.today()を実行して今日の日付を取得し、todayという名前の変数に保存しています。print(today)ではtodayの日付データがそのまま表示され、print(f"...")では、取得した日付を文字列の中に埋め込んで表示しています。

また、取得した日付データは、.year(年)、.month(月)、.day(日)のように「.(ドット)」を付けて、それぞれの情報(要素)を個別に取り出すこともできます。

from datetime import date today = date.today() year = today.year month = today.month day = today.day print(f"年: {year}, 月: {month}, 日: {day}")

出力結果(例)

年: 2025, 月: 11, 日: 25

この例では、date.today()で取得した日付データから、.yearで年、.monthで月、.dayで日をそれぞれ取り出し、変数(year,month,day)にそれぞれ保存しています。print文で、それらの変数を文字列の中に埋め込むことで、年月日を個別に表示しています。

これらの基本構文をマスターすることで、日付を扱うプログラムの基礎が身に付きます。

実用例

ここからは、date.todayを使った実践的なコード例を紹介します。ファイル名の自動作成や日付の計算など、実際の開発でもよく使われるパターンを集めました。動物をテーマにした親しみやすいサンプルコードで、具体的な使い方を見ていきましょう。

今日の日付でファイル名を作成

日々のデータバックアップやログファイルの作成時に、日付を含むファイル名を自動生成する例です。

from datetime import date today = date.today() filename = f"ペット記録_{today.strftime('%Y%m%d')}.txt" print(f"作成するファイル名: {filename}") # ファイルに書き込み例 with open(filename, 'w', encoding='utf-8') as f: f.write("今日のペット観察記録\n")

出力結果(例)

作成するファイル名: ペット記録_20251125.txt

この例では、today.strftime('%Y%m%d')の部分で、日付データを「20240115」のような8桁の数字の文字列に変換しています。%Yが4桁の年、%mが2桁の月、%dが2桁の日を表します。変換した日付文字列をf"ペット記録_{...}.txt"のようにファイル名に埋め込んでいます。後半のwith open(...)は、実際にその名前のファイルを作成して「今日のペット観察記録」と書き込む処理をしています。

曜日を日本語で表示

現在の日付から曜日を取得し、日本語で表示する機能を実装した例です。

from datetime import date today = date.today() weekdays = ['月', '火', '水', '木', '金', '土', '日'] weekday = weekdays[today.weekday()] print(f"今日は{today}で{weekday}曜日です") print(f"今日はネコの健康診断の日です")

出力結果(例)

今日は2025-11-25で火曜日です
今日はネコの健康診断の日です

この例では、まずweekdays = ['月', ...]で曜日のリストを作成し、today.weekday()で今日が週の何番目か(月曜=0〜日曜=6)を数値で取得します。この数値をリストのインデックスとして使い、weekdays[today.weekday()]とすることで、対応する日本語の曜日(この場合は「月」)を取り出しています。

日付の書式を自由にカスタマイズ

strftimeメソッドを活用して、日付表示をさまざまな形式で出力する例です。「2024年01月15日」のような日本語表記や、「01/15/2024」のようなアメリカ式表記など、目的に合わせて自由に指定できます。

from datetime import date today = date.today() format1 = today.strftime('%Y年%m月%d日') format2 = today.strftime('%m/%d/%Y') format3 = today.strftime('%B %d, %Y') print(f"和風表示: {format1}") print(f"アメリカ式: {format2}") print(f"英語表示: {format3}") print("本日のイヌの散歩記録を更新しました")

出力結果(例)

和風表示: 2025年11月25日
アメリカ式: 11/25/2025
英語表示: November 25, 2025
本日のイヌの散歩記録を更新しました

この例では、strftimeメソッドに渡す「書式指定文字列」を変えることで、3パターンの日付文字列を作成しています。%Y(年)、%m(月)、%d(日)、%B(英語の月名)などを組み合わせ、区切り文字(「年」や「/」)とあわせて指定することで、望みの形式で日付を表示できます。

特定の日付との差を計算

今日の日付と指定した日付の差を計算し、日数を求める実用的な例です。dateオブジェクト同士は、簡単に日数を計算できます。

from datetime import date today = date.today() pet_birthday = date(2023, 3, 10) days_passed = (today - pet_birthday).days print(f"今日の日付: {today}") print(f"ハムスターの誕生日: {pet_birthday}") print(f"誕生日から{days_passed}日が経過しました")

出力結果(例)

今日の日付: 2025-11-25
ハムスターの誕生日: 2023-03-10
誕生日から991日が経過しました

この例では、date.today()で今日の日付を、date(2023, 3, 10)でハムスターの誕生日(特定の日付)をそれぞれdateオブジェクトとして作成しています。today - pet_birthdayのように引き算をすると、2つの日付の差がtimedeltaオブジェクトとして得られます。最後に.daysを付けて、その差を日数として取り出しています。

月末かどうかを判定

現在の日付が月末かどうかを自動判定する処理の実装例です。

from datetime import date, timedelta today = date.today() tomorrow = today + timedelta(days=1) is_month_end = tomorrow.month != today.month print(f"今日の日付: {today}") print(f"月末判定: {'月末です' if is_month_end else '月末ではありません'}") if is_month_end: print("ウサギのエサ代の集計を行います")

出力結果(例)

今日の日付: 2025-11-25
月末判定: 月末ではありません

この例では、まずtodayに今日の日付を、tomorrowにtoday + timedelta(days=1)(今日 + 1日)で明日の日付を入れています。tomorrow.month != today.monthという条件式で、「明日の月」と「今日の月」が異なるかどうかを比較しています。もし異なれば(つまり今日が月末なら)is_month_endはTrue、そうでなければFalseとなり、その結果に応じて表示するメッセージを変えています。

年齢計算プログラム

誕生日から現在の年齢を正確に計算するプログラムの例です。単純に(今年の年 - 生まれた年)を計算するだけでは、誕生日がまだ来ていない場合に1歳ずれてしまいます。月と日も比較して、正確な年齢を計算する処理の流れを見てみましょう。

from datetime import date def calculate_age(birth_date): today = date.today() age = today.year - birth_date.year if today.month < birth_date.month or (today.month == birth_date.month and today.day < birth_date.day): age -= 1 return age bird_birth = date(2020, 7, 22) bird_age = calculate_age(bird_birth) print(f"インコの誕生日: {bird_birth}") print(f"現在の年齢: {bird_age}歳")

出力結果(例)

インコの誕生日: 2020-07-22
現在の年齢: 5歳

この例では、年齢計算をage = today.year - birth_date.yearで計算します。if文で、まだ今年の誕生日を迎えていない場合(今日の月が誕生月より前、または月は同じで日が誕生日前)かどうかを判定し、もしそうならage -= 1で年齢から1を引いています。

営業日の計算

土日を除いた営業日のみを考慮した日付計算の実装例です。date.today()とtimedeltaを組みあわせて、「今日から3営業日後(土日を除く3日後)」のように、休日を飛ばして日付を計算することが可能です。

from datetime import date, timedelta def add_business_days(start_date, days): current_date = start_date added_days = 0 while added_days < days: current_date += timedelta(days=1) if current_date.weekday() < 5: # 月曜=0, 日曜=6 added_days += 1 return current_date today = date.today() delivery_date = add_business_days(today, 3) print(f"注文日: {today}") print(f"キャットフードの配達予定日: {delivery_date}")

出力結果(例)

注文日: 2025-11-25
キャットフードの配達予定日: 2025-11-28

この例では、whileループを使って、指定された日数に達するまで、日付を1日ずつ(timedelta(days=1))増やしていきます。

ちなみにtimedeltaは、2つの日付や時刻の期間や差を表すための機能です。timedelta(days=1)と書くことで「1日分の期間」を指定できます。.weekday()が5未満(月〜金)のときだけを「1日」としてカウント(added_days += 1)することで、土日を除いた営業日計算を実現しています。

まとめ

Pythonのdate.todayは、プログラム実行時点での今日の日付を取得する便利な機能です。この記事では、基本的な使い方から日付計算などの実用例まで解説しました。

date.todayが活躍する場面

  • ログファイルやデータファイルに日付を自動で追加したいとき
  • データのバックアップ処理などで日付管理をしたいとき
  • 期限の管理や日数を計算したいとき

date.todayを用いる上で、押さえておきたいポイントを覚えておきましょう。

重要なポイント

  • はじめにdatetimeモジュールからdateをインポートする
  • strftimeメソッドで日付の表示形式を自由に変えられる
  • timedeltaを使い、日付の足し算や引き算(期間計算)ができる

初めてPythonを学ぶ方も、この記事で紹介したdate.todayを実際に書いて、基本的な使い方を試してみてください。

日付を使った処理は、実際の開発で想像以上によく使用されます。マスターしておけば役立つこと間違いなしです。

ぜひdate.todayをマスターして、より実用的なプログラムを作成できるようになりましょう。

レベルを更に上げたい方はpaizaプログラミングスキルチェックへ

  1. paizaラーニングトップ
  2. リファレンス
  3. Pythonのリファレンス記事一覧
  4. Python date.todayの使い方