【完全ガイド】Pythonで日付と時刻を扱う方法|基礎から応用まで

Pythonで日付と時刻を扱う方法|datetimeモジュールの基礎から応用まで python

Pythonでプログラミングをしていると、日付や時刻を扱う場面が必ず出てきます。たとえばファイル名にタイムスタンプを付けたり、システムのログを解析したりする場合です。本記事では、datetimeモジュールを使った日付と時刻の扱い方を初心者向けに解説します。

datetimeモジュールとは?

datetimeモジュールは、Pythonの標準ライブラリのひとつです。日付や時刻を扱うための便利なクラスや関数が用意されており、追加のインストールは不要です。つまり、Pythonをインストールしたらすぐに使えます。主にdatetimedatetimetimedeltaの4つが中心的に使われます。


import datetime

# 現在の日時を取得
now = datetime.datetime.now()
print(now)

上記のコードを実行すると、現在の日時が「2025-08-22 12:34:56.789123」のように出力されます。このように簡単に現在時刻を取得できるのが魅力です。

現在の日付と時刻を取得する方法

最も基本的な操作は「今の日時」を取得することです。これはdatetime.now()を使います。また、日付だけ、または時刻だけを取得する方法も知っておくと便利です。


from datetime import datetime

now = datetime.now()
print("現在日時:", now)
print("日付のみ:", now.date())
print("時刻のみ:", now.time())

このように、必要に応じて日付と時刻を分けて利用できます。例えば、ログの記録では日付だけ保存するケースもありますし、スケジュール管理では時刻が重要になるケースもあります。

日付や時刻を指定して作成する

実務では、現在時刻だけでなく「特定の日付や時刻」を扱うことも多いです。その場合は、datetimeオブジェクトを直接生成します。


from datetime import datetime

dt = datetime(2025, 12, 31, 23, 59, 59)
print("指定日時:", dt)

このコードでは「2025年12月31日 23:59:59」を作成しています。年、月、日、時、分、秒を順に指定します。省略すればデフォルトで0が補われるため、柔軟に利用できます。

日付と時刻のフォーマットを変更する

プログラムで扱うだけでなく、人に見せるために「見やすい形式」に変換することも重要です。その際はstrftime()を使います。


from datetime import datetime

now = datetime.now()
print(now.strftime("%Y/%m/%d %H:%M:%S"))
print(now.strftime("%A, %B %d, %Y"))

%Yは西暦、%mは月、%dは日、%Hは24時間表記の時を表します。柔軟にカスタマイズできるため、用途に応じた出力が可能です。

文字列から日付を作成する(strptime)

外部ファイルやユーザー入力から日付を受け取る場合は、文字列をdatetime型に変換する必要があります。そこで便利なのがstrptime()です。


from datetime import datetime

date_str = "2025-08-22 15:30:00"
dt = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print("変換結果:", dt)

この方法を知っておくと、CSVやログ解析など外部データの処理に大いに役立ちます。

日付や時刻の計算をする(timedelta)

次に紹介するのは日付計算です。例えば「7日後の日付」や「3時間前の時刻」を求めたいときは、timedeltaを使います。


from datetime import datetime, timedelta

now = datetime.now()
future = now + timedelta(days=7)
past = now - timedelta(hours=3)

print("1週間後:", future)
print("3時間前:", past)

このようにtimedeltaを使えば、シンプルに日付や時刻の加算・減算ができます。スケジューリングや有効期限の計算でよく使われるテクニックです。

タイムゾーンを扱う

グローバルなサービスを開発するときに避けて通れないのが「タイムゾーン」です。Pythonのdatetimeはデフォルトでタイムゾーン情報を持ちません。しかし、pytzライブラリを使えば簡単に扱えます。


from datetime import datetime
import pytz

tokyo = pytz.timezone("Asia/Tokyo")
ny = pytz.timezone("America/New_York")

now = datetime.now(tokyo)
print("東京:", now)
print("ニューヨーク:", now.astimezone(ny))

国際的なアプリケーションでは必須の知識です。ユーザーごとに適切な時刻を表示できるようになります。

応用テクニック

ファイル名に日付を埋め込む

プログラムでログやバックアップを作成するとき、ファイル名に日付を入れると管理がしやすくなります。


from datetime import datetime

filename = datetime.now().strftime("backup_%Y%m%d_%H%M%S.txt")
print(filename)

これにより「backup_20250822_153000.txt」のような形式でファイルを保存できます。日付入りのファイル名は衝突防止にも役立ちます。

日付の差を計算する

二つの日付の差を求めるときも便利です。例えば、締め切りまでの日数を計算する場合です。


from datetime import datetime

d1 = datetime(2025, 8, 22)
d2 = datetime(2025, 12, 31)

diff = d2 - d1
print("残り日数:", diff.days)

この方法はカレンダー機能やタスク管理アプリでよく使われます。

よくあるエラーと注意点

タイムゾーン未対応の落とし穴

タイムゾーンを意識せずにシステムを作ると、国際利用時に混乱します。とくにサーバー時刻とユーザー表示時刻がずれるケースが多いので注意が必要です。

フォーマットの違いによるエラー

strptime()を使うとき、フォーマット文字列が実際の入力と一致しないとエラーになります。入力データの形式を確認してから実装しましょう。

より詳しく学びたい方は公式ドキュメントも参考にしてください。
Python公式ドキュメント: datetimeモジュール

Python初心者におすすめのサービス

「もっと実践的なコード例が欲しい」「自分の用途に合わせて教えてほしい」という方には、

テックアカデミーがおすすめです。

AI関連コースやシステム開発コース、アプリ開発コースなど豊富な学習が可能です。

さらに今なら無料相談でアマギフプレゼントもあるので、気軽にお申込みしてみてください。

テックアカデミー無料相談

また、プログラミング学習のプラットフォームとして、ココナラでは、現役エンジニアや経験豊富なPython講師が、あなたのレベルや目的に合わせてマンツーマンで指導してくれます。

書籍や動画ではカバーしきれない、あなた専用のカリキュラムで学べるのが最大の魅力。短時間で効率的にスキルを伸ばしたいなら、まずは出品者のサービスをチェックしてみましょう。

また、教える側としてスキルを活かして副業・独立を目指すことも可能です。
プログラミング経験やPythonの知識があれば、自分の得意分野をサービスとして出品し、全国の学習者から直接依頼を受けられます。オンラインで完結するため、場所や時間に縛られず、自分のペースで働けるのも大きなメリットです。

こちらのリンクから詳細をチェックしてみてください。

▶ ココナラを活用する

まとめ

Pythonのdatetimeモジュールを使えば、日付と時刻の取得・変換・計算を直感的に扱えます。基礎を押さえれば、実務でも役立つ強力な武器となるでしょう。

以下のリンクから、

SESの組込みシステムから色々な不満を持ち、自社WEBサービスへ転職した実体験の記事がありますので、是非読んでみてください。とても喜びます。

SESの組込みシステムから自社WEBサービスのエンジニアに転職した話

コメント

タイトルとURLをコピーしました