カテゴリ: Python 更新日: 2025/12/30

Pythonで日付を解析する方法を完全ガイド!初心者でもわかるstrptime()の使い方

Pythonで日付を解析(パース)する方法(strptime() の活用)
Pythonで日付を解析(パース)する方法(strptime() の活用)

先生と生徒の会話形式で理解しよう

生徒

「Pythonで文字として書かれた日付を、本当の日付データに変換する方法ってありますか?」

先生

「Pythonでは、datetimeモジュールのstrptime()を使えば、文字列の日付を簡単に日付データに変換できますよ。」

生徒

「どんなときに使うんですか?」

先生

「例えば、ウェブサイトのフォームに入力された日付や、CSVファイルに書かれた文字形式の日時をプログラムとして扱いたいときに使います。それでは基本から見ていきましょう。」

1. strptime()とは?

1. strptime()とは?
1. strptime()とは?

strptime()は、Pythonのdatetimeモジュールが持っている機能で、文字列(ストリング)で表現された日付を、プログラムで扱える日付データに変換するための仕組みです。 日付データに変換すると、あとで計算したり比較したりできるようになります。初心者の方には少し聞き慣れない言葉かもしれませんが、「文字のままの日付を、本物の日付として使える形に変える道具」と考えると理解しやすくなります。

例えば「2024-05-01」という文字列があったとします。これは人間には日付に見えますが、Pythonからするとただの文字列です。そこでstrptime()を使うと、この文字列を年や月や日として認識し、日付型のオブジェクトに変換できるようになります。

2. strptime() の基本的な使い方

2. strptime() の基本的な使い方
2. strptime() の基本的な使い方

strptime()は次のように使います。最初の引数には変換したい日付文字列を入れ、二つ目の引数にはその文字列がどんな書き方(フォーマット)になっているかを指定します。


from datetime import datetime

text = "2024-05-01"
dt = datetime.strptime(text, "%Y-%m-%d")
print(dt)

実行すると次のようになります。


2024-05-01 00:00:00

このように、ただの文字だった日付が日付データとして扱えるようになります。%Yは年、%mは月、%dは日を表す記号で、これを「フォーマット指定子」といいます。難しそうに見えますが、覚える種類はそんなに多くありません。

3. strptime()で使う主なフォーマット指定子

3. strptime()で使う主なフォーマット指定子
3. strptime()で使う主なフォーマット指定子

日付解析に必要なものは主に次のとおりです。これらを組み合わせて書かれた形式に合わせて変換できます。

  • %Y … 西暦(4桁)
  • %m … 月(2桁)
  • %d … 日(2桁)
  • %H … 時(24時間)
  • %M … 分
  • %S … 秒

例えば「2024/05/01 14:30:00」という文字列があれば、スラッシュや半角スペースも含めて書かれているとおりの形を指定してあげる必要があります。


from datetime import datetime

text = "2024/05/01 14:30:00"
dt = datetime.strptime(text, "%Y/%m/%d %H:%M:%S")
print(dt)

4. 形式が違うと変換できない理由

4. 形式が違うと変換できない理由
4. 形式が違うと変換できない理由

strptime()は、指定したフォーマットと文字列の形が一致しないとエラーになります。これは、Pythonが正しい位置に年や月や日を読み取れなくなるためです。人間なら多少の揺れでも読み取れますが、コンピュータは「書かれている形が完全に一致しているか」を厳しくチェックします。

例えば「2024-5-1」という文字列は月や日の桁数が違うため、次のような指定ではエラーになります。


datetime.strptime("2024-5-1", "%Y-%m-%d")  # これはエラーになる

こういう場合は文字列側の形式を揃えるか、あるいは事前に桁を補う加工をしてあげる必要があります。現実のシステムでは、ユーザー入力や外部データが必ずしも同じ形式で来るとは限らないので、実務ではとてもよくある問題です。

5. 実例:フォーム入力やCSVの日時を解析する

5. 実例:フォーム入力やCSVの日時を解析する
5. 実例:フォーム入力やCSVの日時を解析する

strptime()がよく使われる場面としては、フォームから受け取った文字列の日時や、CSVファイルに保存された時刻データを扱うときがあります。人が入力した値は書き方がばらばらなことも多く、「YYYY-MM-DD」や「YYYY/MM/DD」など形式を揃えて解析する必要があります。


from datetime import datetime

text = "2024/5/1"
dt = datetime.strptime(text, "%Y/%m/%d")
print(dt)

このように、書かれたとおりの形式を指定して変換します。日付解析はシステムの基盤になる部分なので、安定して扱えるようになると、データ処理やログ解析など幅広い場面で役立つようになります。

カテゴリの一覧へ
新着記事
New1
Flask
Flask×Flask-SocketIOでチャットアプリを作る流れを初心者向けにやさしく解説
New2
Flask
Flaskアプリの作り方を基礎から学ぼう!初心者が覚えるべき開発の流れとは?
New3
Flask
Flask-WTFでファイルアップロードフォームを完全ガイド!初心者でもわかる画像やPDFのアップロード方法
New4
Flask
FlaskでCSRF対策を実装する方法!安全なフォーム送信を学ぼう
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.5
Java&Spring記事人気No5
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.6
Java&Spring記事人気No6
Python
Pythonでリストを文字列に変換する方法を完全ガイド!初心者でもわかるjoinの使い方
No.7
Java&Spring記事人気No7
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.8
Java&Spring記事人気No8
Flask
FlaskアプリのSECRET_KEYの設定方法を完全ガイド!初心者でもわかるセキュリティ対策