Pythonで現在の日付・時刻を取得する方法!初心者にもわかるdatetime.now()とtoday()
生徒
「Pythonで今の時間や今日の日付を知りたいんですが、どうやって書けばいいんですか?」
先生
「Pythonにはdatetimeというモジュールがあって、now()やtoday()を使えば簡単に現在の時刻や日付を取得できますよ。」
生徒
「それってどういう違いがあるんですか?あと、使い方も教えてほしいです!」
先生
「それじゃあ、datetime.now()とdatetime.today()の違いと、実際の使い方を一緒に見ていきましょう!」
1. Pythonで現在の日時を扱うには?(datetimeモジュールの基本)
Python(パイソン)で「今この瞬間」の日付や時刻を取得したいときは、標準ライブラリのdatetime(デイトタイム)というモジュールを使用します。これは、現実世界のカレンダーや時計のデータをプログラムで扱えるようにするための、非常に便利な「道具箱」のようなものです。
プログラミングが初めての方でも安心してください。Pythonには最初からこの機能が備わっているため、特別なインストール作業は不要です。まず最初に、その道具を使うための「宣言(インポート)」を行う必要があります。
import datetime
# datetimeモジュールが使えるようになったか確認
print("準備完了!")
このimport datetimeという1行を書くだけで、システム時計から正確な「年・月・日」や「時・分・秒」といった情報を自由に取得し、計算や表示に活用できるようになります。例えば、日記アプリの作成や、期限までの残り日数を計算するプログラムなど、実用的な開発には欠かせない第一歩です。
2. datetime.now()で現在の日時(時刻含む)を取得
Pythonで最も頻繁に使われるのが、このdatetime.now()です。これを使うと、現在の「年・月・日」という日付情報だけでなく、「時・分・秒」という詳細な時刻情報まで一気に取得できます。まさに、デジタル時計とカレンダーを同時に確認するようなイメージです。
まずは、一番シンプルな書き方で今の時間を表示させてみましょう。プログラミングが初めての方でも、以下の3行をコピーして実行するだけで、あなたのコンピュータの正確な時刻が表示されますよ。
import datetime
# 今この瞬間の情報を「now」という変数に入れる
now = datetime.datetime.now()
# 画面に表示して確認
print("現在の日時はこちら:", now)
現在の日時はこちら: 2026-02-04 13:05:12.987654
実行結果を見ると、2026-02-04(年月日)と13:05:12.987654(時刻)が半角スペースで区切られて表示されていますね。一番後ろにある「987654」のような細かい数字は「マイクロ秒」と呼ばれ、100万分の1秒単位まで記録されています。非常に精密なデータが取れるのがPythonの特徴です。
このdatetime.now()は、例えば「ユーザーがログインした時刻を記録する」ときや、「SNSの投稿時間を表示する」ときなど、Webアプリやシステム開発の現場で毎日のように使われる必須のテクニックです。
3. datetime.date.today()で日付だけを取得
時刻(時・分・秒)の情報は必要なく、「今日が何月何日かだけを知りたい」という場面も多いですよね。そんな時に最適なのがdatetime.date.today()です。余計な情報が含まれないため、データの管理がしやすく、見た目も非常にスッキリします。
例えば、家計簿アプリで「買い物をした日」を記録したり、カレンダーアプリで「今日の予定」を表示したりする際には、この日付のみを取得する方法がよく使われます。まずは、プログラミング未経験の方でもすぐに試せるシンプルなコードを見てみましょう。
import datetime
# 今日の日付(年月日)だけを取得して「today」という箱に入れる
today = datetime.date.today()
# 画面に表示して確認
print("今日の日付:", today)
今日の日付: 2026-02-04
実行結果を見ると、先ほどのnow()とは違い、時刻が表示されずに2026-02-04という形式だけで出力されています。このように、用途に合わせて「日付のみ」に限定して取得することで、プログラムが読みやすくなり、後の計算(例えば「今日から10日後」を求めるなど)もスムーズに行えるようになります。
事務作業の自動化や、提出期限の管理システムなど、正確な「日付」を扱うあらゆるプログラムの基礎となる重要な機能です。
4. datetime.today()とdatetime.now()の違いとは?
Pythonには、現在の日時を取得する方法としてdatetime.now()のほかに、datetime.today()というよく似た関数が存在します。結論から言うと、初心者の方が普段使いする分には、どちらを使っても同じ結果が得られます。
しかし、厳密には「タイムゾーン(時差)」の扱いにおいて、プログラミング上の小さな違いがあります。まずは、today()を使ったコードの書き方を見てみましょう。
import datetime
# datetime.today()で現在の日時を取得
dt_today = datetime.datetime.today()
print("today()の結果:", dt_today)
today()の結果: 2026-02-04 13:07:45.123456
実行結果を見ると、now()の時と同じように「年月日・時分秒」が表示されますよね。では、なぜ2つの方法があるのでしょうか?
【ここがポイント!】
today()は常に「そのコンピュータが設定されている現在の時刻」を返します。一方で、now()は引数(ひきすう)という設定を追加することで、「今の日本の時間は?」「今のニューヨークの時間は?」といった特定の地域の時間を指定して取得できるという拡張性を持っています。
将来的に、世界中で使われるアプリを作る際にはnow()の柔軟性が役立ちますが、まずは「どちらも今を記録する魔法の言葉」と覚えておけばOKです。迷ったら、より多機能で現場での使用率も高いnow()を使うのがおすすめですよ。
5. 年・月・日・時・分・秒を個別に取り出す方法
取得した日時から、たとえば「年だけ」「月だけ」などの情報を取り出すこともできます。
import datetime
now = datetime.datetime.now()
print("年:", now.year)
print("月:", now.month)
print("日:", now.day)
print("時:", now.hour)
print("分:", now.minute)
print("秒:", now.second)
これにより、画面表示やファイル名に日時を使いたいときに役立ちます。
6. 日時を日本語形式で表示するには?
普通のprint()だと「2025-09-03」や「14:55:21.123456」のような形式になりますが、日本語で「2025年9月3日」や「14時55分」などの形にするにはstrftime()(ストラフトタイム)という関数を使います。
import datetime
now = datetime.datetime.now()
print(now.strftime("%Y年%m月%d日 %H時%M分%S秒"))
2025年09月03日 14時55分21秒
主な書き方の意味:
%Y:年(4桁)%m:月(2桁)%d:日(2桁)%H:時(24時間)%M:分%S:秒
7. 時間の取得を使った身近な例
「今の時間が夜だったらおやすみメッセージを出す」といったプログラムも作れます。これもdatetime.now()を使えば簡単にできます。
import datetime
now = datetime.datetime.now()
if now.hour >= 22:
print("もう夜遅いですね。おやすみなさい!")
else:
print("まだ起きてても大丈夫な時間ですね。")
まだ起きてても大丈夫な時間ですね。
このように、時間を使ってメッセージを変えるなど、実用的な工夫ができます。
8. よくあるエラーと注意点
よくある間違いとして、nowやtodayを直接使ってしまい、エラーになるパターンがあります。必ずdatetime.を前につけるようにしましょう。
# 間違った例(エラーになる)
now = now()
# 正しい例
now = datetime.datetime.now()
また、import datetimeを忘れると、そもそもdatetimeが使えずエラーになります。
9. datetimeの使い方まとめの前に
この記事では、Pythonで現在の日付や時刻を取得する方法としてdatetime.now()やdatetime.date.today()の使い方を詳しく解説しました。初心者でも簡単に使えるように、例えや実例をまじえて丁寧に紹介しました。
今後のプログラム作成や学習に、ぜひ活かしてみてください。
まとめ
Pythonで現在の日時を取得する際に欠かせないdatetimeモジュールについて、この記事全体で学んできた内容を振り返りながら整理していきます。日付や時刻の基礎的な扱い方だけでなく、年月日や時分秒を個別に取り出す方法、日本語形式で整形するためのstrftime、さらには夜間かどうかでメッセージを変える実用的な処理まで、多くの場面で活用できる知識を身につけることができました。特に、datetime.now()とdatetime.today()の違いを理解しておくことは、複雑な時間処理を行う際にも役立ちます。また、datetime.date.today()によって日付だけを簡潔に取得できる仕組みを知ることで、日付管理を行うアプリケーションやスケジュール計算に応用しやすくなります。
Pythonの時間操作では、必要な情報を必要な形に整えて使用することが重要であり、そのために年や月だけを取り出すプロパティの使い方や、printの出力形式を変更するための書式指定が非常に重要になります。とくに日本語形式の日付表記は実務でもよく使用されるため、strftimeの使い方を身につけることでコードの表現力が一段階向上します。また、現在時刻から条件分岐を行うことで、生活に身近な例にも応用できる柔軟なプログラムを作成することができます。
サンプルプログラムまとめ
import datetime
# 現在日時を取得
now = datetime.datetime.now()
# 日本語形式に整形
jp_format = now.strftime("%Y年%m月%d日 %H時%M分%S秒")
print("現在の日時(日本語形式):", jp_format)
# 年月日や時分秒を個別に利用
year = now.year
month = now.month
day = now.day
hour = now.hour
print("年:", year)
print("月:", month)
print("日:", day)
print("時:", hour)
# 条件分岐の例
if hour >= 20:
print("夜の時間帯です。ゆっくり休みましょう。")
else:
print("まだ活動できる時間ですね。")
このように、datetimeモジュールの仕組みを理解していくと、日付や時刻を柔軟に扱うための基礎が自然と身につきます。日付の管理やシステムログの記録、時間帯による処理の切り替えなど、プログラムの中で必要とされるさまざまな場面に応用できるため、日常的なプログラミングでも非常に役立ちます。年月日や時刻の取得を正しく理解することで、より正確で信頼性の高いコードを書くことができるようになります。
生徒
「今日学んだdatetimeの使い方、すごく便利でした!特にstrftimeで日本語の形式にできるのが面白かったです。」
先生
「大切なポイントをしっかり理解できていますね。日本語形式の整形は実務でも頻繁に使われますから、自然に書けるようになるととても役立ちますよ。」
生徒
「now()とtoday()の違いも理解できました。最初は混乱していたけど、日時と日付だけで役割が違うんですね。」
先生
「その通りです。用途に合わせて使い分けることで、より正確で読みやすいコードになりますよ。」
生徒
「時間でメッセージを変える例も楽しかったです!自分でも生活リズムに合わせたプログラムを作ってみたいです。」
先生
「とても良い姿勢ですね。datetimeは日常生活に取り入れられる便利なツールですから、ぜひいろいろと試してみてください。」