Pythonの日付・時刻の基本!datetimeモジュールの使い方を解説
生徒
「Python(パイソン)で今日の日付や今の時間ってどうやって確認するんですか?」
先生
「Pythonにはdatetime(デイトタイム)という標準のモジュールがあって、それを使えば簡単に日付や時間を扱えますよ。」
生徒
「パソコンで時計を使うような感じですか?」
先生
「そうですね。Pythonで日時を扱うのは、デジタル時計のように『今何時か』を知ったり、『何日後か』を計算したりすることができるんです。今回はその基本を一緒に見ていきましょう!」
1. datetimeモジュールとは?
Pythonのdatetimeモジュールは、「日付(Date)」や「時刻(Time)」を扱うための標準ライブラリです。最初からPythonに入っているので、特別なインストールは不要です。
例えば、今日が何日か、今が何時か、何日後がいつか、などを簡単に調べたり計算したりできます。
まずはモジュールを読み込むところからスタートしましょう。
import datetime
2. 今日の日付を取得してみよう
パソコンが持っている「今」の日付を確認するには、datetime.date.today()を使います。
import datetime
today = datetime.date.today()
print("今日の日付は:", today)
今日の日付は: 2025-09-03
このように、「年-月-日」の形で表示されます。これは「日付オブジェクト」と呼ばれるもので、カレンダーの日付のようなものです。
3. 現在の日時(年月日と時分秒)を取得する
今の「時間」も含めて知りたい場合は、datetime.datetime.now()を使います。
import datetime
now = datetime.datetime.now()
print("現在の日時は:", now)
現在の日時は: 2025-09-03 14:30:45.123456
このように、年・月・日・時・分・秒までが細かく表示されます。後ろの「.123456」は「マイクロ秒」という単位で、かなり細かい時間です。
4. 日付の差を計算してみよう
「今日は何日後?」や「何日前?」といった日数の計算も簡単にできます。timedeltaという機能を使います。
import datetime
today = datetime.date.today()
after_7_days = today + datetime.timedelta(days=7)
print("7日後は:", after_7_days)
7日後は: 2025-09-10
このように、未来の日付を計算できます。マイナスを使えば過去の日付も計算できますよ。
5. 日付や時間を文字として扱いたいとき(フォーマット)
たとえば「2025年9月3日」のように表示したい場合、日時を文字に変換(フォーマット)できます。
import datetime
now = datetime.datetime.now()
print(now.strftime("%Y年%m月%d日 %H時%M分%S秒"))
2025年09月03日 14時30分45秒
strftime(ストラフトタイム)という関数を使います。記号には意味があります:
%Y:西暦(2025など)%m:月(01〜12)%d:日(01〜31)%H:時(24時間)%M:分%S:秒
6. 文字から日付に変換する(strptime)
「文字列」を「日付」に変換したいときには、strptime(ストラップタイム)を使います。
import datetime
date_str = "2025-09-03"
date_obj = datetime.datetime.strptime(date_str, "%Y-%m-%d")
print("変換後:", date_obj)
変換後: 2025-09-03 00:00:00
これは、文字で書かれた日付を、Pythonで使える日付オブジェクトに変換する方法です。
7. 日付や時刻の一部分だけ取り出したい
今の日時から、「年」や「月」だけを取り出したいときもありますよね。datetimeオブジェクトからは、部分的に情報を取り出せます。
import datetime
now = datetime.datetime.now()
print("年:", now.year)
print("月:", now.month)
print("日:", now.day)
print("時:", now.hour)
print("分:", now.minute)
print("秒:", now.second)
このように、ピンポイントで年・月・日・時・分・秒を使えます。
8. 時間の計算にもチャレンジしてみよう
日付だけでなく、「時間」の足し算・引き算もできます。
import datetime
now = datetime.datetime.now()
after_1_hour = now + datetime.timedelta(hours=1)
print("1時間後:", after_1_hour)
1時間後: 2025-09-03 15:30:45.123456
このようにtimedeltaを使えば、「1時間後」や「30分後」といった計算が自由にできます。
9. datetimeの基本をおさらい
ここまでで、Pythonのdatetimeモジュールを使って:
- 今日の日付や現在の時刻を取得する方法
- 日付の計算や、時刻の一部を取り出す方法
- 文字列との変換
など、基本的な操作を一通り学びました。
この知識を使えば、カレンダーアプリや予定管理、ログの時間記録など、実用的なプログラムも作れるようになります。
まとめ
今回の記事では、Pythonのdatetimeモジュールを使って日付や時刻を扱うために必要な基本的な考え方と、実際のコードの書き方を一つずつていねいに確認してきました。日付や時刻という情報は、どんなプログラムを作る際にも登場する大切な要素であり、たとえば予定管理、データの記録、ログ出力、ファイルの更新日の検証、レポートの生成など、さまざまな用途で必要になります。datetimeモジュールは、それらの作業を効率的かつ正確に実行するために欠かせない標準ライブラリのひとつであり、Python初心者にとっても習得しておく価値の高い機能です。 datetimeモジュールを使うと、今日の日付を取得する処理、現在時刻を取得する処理、日付や時間の計算、文字列との変換などを自然な形で表現できます。今回の記事ではdate.todayを使った今日の日付の取得、datetime.nowを使った時刻の取得、timedeltaを使った日付と時間の計算、strftimeによるフォーマット変換、strptimeによる文字列からの変換など、基本的ながら実用的なテクニックを一通り確認しました。それぞれの書き方はシンプルでも、理解しておくとプログラムの表現力が大きく広がります。 とくにtimedeltaは応用範囲が広く、何日後・何日前・何時間後といった計算を、直感的に書ける便利なクラスです。実務や日常のプログラムでも頻繁に登場するので、今回の例をたくさん試して身につけておくと役に立ちます。また、strftimeとstrptimeは「日時の表示形式」と「文字列から日時を作る」という二つの方向から使えるため、ユーザー入力を扱うアプリケーションなどでも特に重要になります。 さらにdatetimeオブジェクトのyear、month、day、hour、minute、secondといった属性を使えば、必要な部分だけを取り出す処理が簡単に書けます。これを利用すると、たとえば「同じ年のものだけを抽出する」「同じ月のデータだけを集計する」「特定の日付のイベントだけを並べる」などの処理もスムーズに行えるようになり、データ分析にも応用できます。Pythonの基本を学ぶ段階で、こうした情報が自然に扱えるようになることは、プログラム全体の理解を深める上でも重要です。 また、日時の計算や変換はログ処理とも相性がよく、プログラムがどの時刻に何をしたかを記録する際にも使われます。Pythonの標準ライブラリは相互に組み合わせやすいように設計されており、datetimeの知識はloggingやファイル処理など他の機能と組み合わせることでさらに力を発揮します。こうした点でも、datetimeモジュールは基礎として非常に重要です。 以下に、今回の内容をまとめて復習できるサンプルプログラムを用意しました。実際に実行しながら、今日学んだポイントを確認してみてください。
サンプルプログラム(復習用)
日付の取得、時刻の取得、計算、フォーマット変換、文字列変換の流れをまとめたサンプルです。
import datetime
# 今日の日付
today = datetime.date.today()
print("今日:", today)
# 現在の日時
now = datetime.datetime.now()
print("現在:", now)
# 10日後
after_ten = today + datetime.timedelta(days=10)
print("10日後:", after_ten)
# 2時間後
after_two_hours = now + datetime.timedelta(hours=2)
print("2時間後:", after_two_hours)
# フォーマット変換
print("フォーマット表示:", now.strftime("%Y年%m月%d日 %H時%M分%S秒"))
# 文字列から日付へ変換
date_str = "2025-12-25"
parsed = datetime.datetime.strptime(date_str, "%Y-%m-%d")
print("文字列から変換:", parsed)
# 部分取得
print("年:", now.year)
print("月:", now.month)
print("日:", now.day)
print("時:", now.hour)
print("分:", now.minute)
print("秒:", now.second)
このサンプルのように、datetimeモジュールは日付や時刻を自在に扱える強力なツールです。基礎をしっかり理解しておけば、実務的なプログラムから日常的な自動化スクリプトまで幅広く応用できます。今回のまとめを参考に、ぜひ自分でもいくつかの日時計算やフォーマット変換のコードを書いてみてください。理解が深まるほど、Pythonで実現できることがどんどん増えていくはずです。
生徒「datetimeって名前だけ聞くとむずかしそうでしたけど、今日の説明で一気に分かりやすくなりました!」
先生「よかったです。基本さえ覚えれば、日付も時刻も自然に扱えるようになりますよ。」
生徒「todayで今日の日付が取れたり、nowで今の時間が分かったりするのはとても便利ですね。」
先生「そうですね。そしてtimedeltaを使えば、未来の日付や過去の日付も簡単に計算できます。予定管理にも応用できますよ。」
生徒「strftimeでフォーマットが自由に変えられるところもおもしろかったです。見やすい形に整えられて便利ですね。」
先生「その通りです。フォーマットは実務でもよく使うので、いくつかの書式を覚えておくと役に立ちます。」
生徒「strptimeで文字列を日付に戻せるのも便利でした。ユーザー入力にも使えそうです。」
先生「まさにその通りですね。ユーザーが入力した日時データを扱うときには欠かせない考え方です。」
生徒「今日の内容を覚えておけば、自分でもカレンダーっぽいアプリが作れそうな気がしてきました。」
先生「それはとても良い考えです。datetimeは応用範囲が広いので、ぜひいろいろ試してみてくださいね。」