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()と書くだけで、実行した「今日の日付」を取得できます。
出力結果(例)
2025-11-25
今日は2025-11-25です※このページ内のコードの出力結果は、実行した時刻により変動します。また、時刻はUTC形式で計算されるため、日本時間での計算結果と異なる場合があります
この例では、まずfrom datetime import dateでdate機能を使えるようにしています。次にdate.today()を実行して今日の日付を取得し、todayという名前の変数に保存しています。print(today)ではtodayの日付データがそのまま表示され、print(f"...")では、取得した日付を文字列の中に埋め込んで表示しています。
また、取得した日付データは、.year(年)、.month(月)、.day(日)のように「.(ドット)」を付けて、それぞれの情報(要素)を個別に取り出すこともできます。
出力結果(例)
年: 2025, 月: 11, 日: 25この例では、date.today()で取得した日付データから、.yearで年、.monthで月、.dayで日をそれぞれ取り出し、変数(year,month,day)にそれぞれ保存しています。print文で、それらの変数を文字列の中に埋め込むことで、年月日を個別に表示しています。
これらの基本構文をマスターすることで、日付を扱うプログラムの基礎が身に付きます。
実用例
ここからは、date.todayを使った実践的なコード例を紹介します。ファイル名の自動作成や日付の計算など、実際の開発でもよく使われるパターンを集めました。動物をテーマにした親しみやすいサンプルコードで、具体的な使い方を見ていきましょう。
今日の日付でファイル名を作成
日々のデータバックアップやログファイルの作成時に、日付を含むファイル名を自動生成する例です。
出力結果(例)
作成するファイル名: ペット記録_20251125.txtこの例では、today.strftime('%Y%m%d')の部分で、日付データを「20240115」のような8桁の数字の文字列に変換しています。%Yが4桁の年、%mが2桁の月、%dが2桁の日を表します。変換した日付文字列をf"ペット記録_{...}.txt"のようにファイル名に埋め込んでいます。後半のwith open(...)は、実際にその名前のファイルを作成して「今日のペット観察記録」と書き込む処理をしています。
曜日を日本語で表示
現在の日付から曜日を取得し、日本語で表示する機能を実装した例です。
出力結果(例)
今日は2025-11-25で火曜日です
今日はネコの健康診断の日ですこの例では、まずweekdays = ['月', ...]で曜日のリストを作成し、today.weekday()で今日が週の何番目か(月曜=0〜日曜=6)を数値で取得します。この数値をリストのインデックスとして使い、weekdays[today.weekday()]とすることで、対応する日本語の曜日(この場合は「月」)を取り出しています。
日付の書式を自由にカスタマイズ
strftimeメソッドを活用して、日付表示をさまざまな形式で出力する例です。「2024年01月15日」のような日本語表記や、「01/15/2024」のようなアメリカ式表記など、目的に合わせて自由に指定できます。
出力結果(例)
和風表示: 2025年11月25日
アメリカ式: 11/25/2025
英語表示: November 25, 2025
本日のイヌの散歩記録を更新しましたこの例では、strftimeメソッドに渡す「書式指定文字列」を変えることで、3パターンの日付文字列を作成しています。%Y(年)、%m(月)、%d(日)、%B(英語の月名)などを組み合わせ、区切り文字(「年」や「/」)とあわせて指定することで、望みの形式で日付を表示できます。
特定の日付との差を計算
今日の日付と指定した日付の差を計算し、日数を求める実用的な例です。dateオブジェクト同士は、簡単に日数を計算できます。
出力結果(例)
今日の日付: 2025-11-25
ハムスターの誕生日: 2023-03-10
誕生日から991日が経過しましたこの例では、date.today()で今日の日付を、date(2023, 3, 10)でハムスターの誕生日(特定の日付)をそれぞれdateオブジェクトとして作成しています。today - pet_birthdayのように引き算をすると、2つの日付の差がtimedeltaオブジェクトとして得られます。最後に.daysを付けて、その差を日数として取り出しています。
月末かどうかを判定
現在の日付が月末かどうかを自動判定する処理の実装例です。
出力結果(例)
今日の日付: 2025-11-25
月末判定: 月末ではありませんこの例では、まずtodayに今日の日付を、tomorrowにtoday + timedelta(days=1)(今日 + 1日)で明日の日付を入れています。tomorrow.month != today.monthという条件式で、「明日の月」と「今日の月」が異なるかどうかを比較しています。もし異なれば(つまり今日が月末なら)is_month_endはTrue、そうでなければFalseとなり、その結果に応じて表示するメッセージを変えています。
年齢計算プログラム
誕生日から現在の年齢を正確に計算するプログラムの例です。単純に(今年の年 - 生まれた年)を計算するだけでは、誕生日がまだ来ていない場合に1歳ずれてしまいます。月と日も比較して、正確な年齢を計算する処理の流れを見てみましょう。
出力結果(例)
インコの誕生日: 2020-07-22
現在の年齢: 5歳この例では、年齢計算をage = today.year - birth_date.yearで計算します。if文で、まだ今年の誕生日を迎えていない場合(今日の月が誕生月より前、または月は同じで日が誕生日前)かどうかを判定し、もしそうならage -= 1で年齢から1を引いています。
営業日の計算
土日を除いた営業日のみを考慮した日付計算の実装例です。date.today()とtimedeltaを組みあわせて、「今日から3営業日後(土日を除く3日後)」のように、休日を飛ばして日付を計算することが可能です。
出力結果(例)
注文日: 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をマスターして、より実用的なプログラムを作成できるようになりましょう。