カテゴリ: Python 更新日: 2026/04/25

Pythonのstrptimeで日付を解析しよう!初心者向けのやさしい解説

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

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

生徒

「Pythonで“2025年9月3日”みたいな文字を、ちゃんと日付として使いたいんですけど、どうすればいいですか?」

先生

「それは良いところに気がつきましたね。Pythonにはstrptimeという便利な関数があって、文字列を日付として扱えるようにできますよ。」

生徒

「それって、例えば“2025/09/03”みたいな書き方でも大丈夫なんですか?」

先生

「はい!書き方に合わせてフォーマットを指定すれば、どんな形式でも柔軟に変換できます。詳しく見ていきましょう。」

1. Pythonで日付を扱うには?(datetimeモジュールの基本)

1. Pythonで日付を扱うには?(datetimeモジュールの基本)
1. Pythonで日付を扱うには?(datetimeモジュールの基本)

プログラミングの世界では、「2026/01/29」という文字は、単なる記号の並び(文字列)として扱われます。しかし、カレンダーのように「1週間後を計算する」あるいは「日付の順に並べ替える」といった操作をするには、コンピューターにそれが「日付である」と認識させなければなりません。

Python(パイソン)で日付や時間を効率よく操作するために用意されているのが、datetime(デイトタイム)という標準モジュールです。これを使うことで、複雑な時間の計算も驚くほど簡単になります。

未経験者向け:文字列と日付データの違い


# これはただの「文字」なので、足し算や引き算ができません
date_text = "2026-01-29"

# datetimeを使うと、計算可能な「日付データ」として扱えます
from datetime import datetime
print("Pythonで日付を扱う準備ができました!")

例えば、Webサイトの入力フォームやExcelから読み込んだ「2026-01-29」という文字を、システムで利用できる「本物の日付データ」に変換したいときに登場するのが、今回詳しく解説するstrptime(ストリピーエム)関数です。この道具をマスターすることが、Pythonで日付操作を自由自在に行うための第一歩となります。

2. strptimeとは?初心者向けに基礎から使い方を解説

2. strptimeとは?初心者向けに基礎から使い方を解説
2. strptimeとは?初心者向けに基礎から使い方を解説

Pythonで日付を扱う際に必ずといっていいほど登場するのがstrptimeです。 これは「String Parse Time」の略で、人間が読みやすい「日付の文字列」を、コンピューターが計算しやすい「日付専用のデータ形式(datetimeオブジェクト)」に変換(解析)する役割を持っています。

たとえば、Webサイトの入力フォームやCSVファイルから読み込んだ日付は、プログラム上ではただの「文字(String)」として扱われます。 そのままでは「1日後を計算する」といった操作ができません。そこでstrptimeを使い、プログラムが「これは日付だ」と認識できる状態にする必要があります。

ポイント: 変換の際は、元の文字列が「年・月・日のどの順番で並んでいるか」を、記号を使って教えてあげるのがコツです。

プログラミングが初めての方でも分かりやすい、具体的な変換例を見てみましょう。


from datetime import datetime

# 1. 変換したい「日付の文字」を用意します
date_text = "2025年09月03日 14時30分"

# 2. strptimeを使って、文字の並び順(フォーマット)を指定して変換します
# %Yは年、%mは月、%dは日、%Hは時、%Mは分を指します
parsed_date = datetime.strptime(date_text, "%Y年%m月%d日 %H時%M分")

# 3. 結果を表示してみましょう
print(f"変換前: {type(date_text)}")    # <class 'str'>(ただの文字)
print(f"変換後: {type(parsed_date)}")  # <class 'datetime.datetime'>(日付データ)
print(parsed_date)

変換前: <class 'str'>
変換後: <class 'datetime.datetime'>
2025-09-03 14:30:00

このように、datetimeオブジェクトに変換されることで、「来週の同じ時間を調べる」「曜日に合わせてメッセージを変える」といった、日付ならではの便利な操作が自由自在にできるようになります。

3. 変換の鍵!フォーマット文字(書式化記法)の種類と役割

3. 変換の鍵!フォーマット文字(書式化記法)の種類と役割
3. 変換の鍵!フォーマット文字(書式化記法)の種類と役割

Pythonで文字列を日付に変換する際、最も重要なのが「フォーマット文字」です。これは、コンピュータに対して「この数字は『年』だよ」「ここは『月』だよ」と教えてあげるための専用のラベルのようなものです。

プログラミング未経験の方でも、まずは以下の代表的なラベル(フォーマット文字)をパズルのピースのように組み合わせるだけで、自由自在に日付を操れるようになります。

フォーマット文字 意味(役割) 具体例
%Y 西暦(4桁) 2026
%m 月(01〜12) 01(1月のこと)
%d 日(01〜31) 29
%H 時(24時間表記) 13(午後1時のこと)
%M 分(00〜59) 45
%S 秒(00〜59) 08

例えば、「2026年1月29日」という日本語混じりのデータがあった場合、strptimeには %Y年%m月%d日 と指定することで、Pythonが正しく日付として認識してくれます。記号だけでなく、間の文字(年、月、日、スラッシュなど)も正確に合わせるのがコツです。

初心者のためのミニ解説:
大文字の %Y は4桁(2026)、小文字の %y は下2桁(26)を指します。基本的には、間違いを防ぐために4桁の %Y を使う癖をつけておくと安心ですよ!

実際の使い方サンプル

「/(スラッシュ)」で区切られたよくある日付形式を変換してみましょう。


from datetime import datetime

# 1. 元になる「文字列」を用意
date_string = "2026/01/29 15:30"

# 2. 文字列の形式に合わせてフォーマット文字を配置
# %Y/%m/%d %H:%M と書くことで、スラッシュやコロンの位置を一致させます
date_format = "%Y/%m/%d %H:%M"

# 3. 実際に変換を実行
converted_date = datetime.strptime(date_string, date_format)

print(f"変換後の型: {type(converted_date)}")
print(f"変換後の値: {converted_date}")

4. よくある日付形式の例とコード

4. よくある日付形式の例とコード
4. よくある日付形式の例とコード

ここでは、よくある日付の書き方と、それに対応するstrptimeの書き方を紹介します。

例1:2025年9月3日


from datetime import datetime

date_str = "2025年9月3日"
parsed = datetime.strptime(date_str, "%Y年%m月%d日")
print(parsed)

2025-09-03 00:00:00

例2:03/09/2025(海外式:日/月/年)


date_str = "03/09/2025"
parsed = datetime.strptime(date_str, "%d/%m/%Y")
print(parsed)

2025-09-03 00:00:00

例3:2025/09/03 18:45:10


date_str = "2025/09/03 18:45:10"
parsed = datetime.strptime(date_str, "%Y/%m/%d %H:%M:%S")
print(parsed)

2025-09-03 18:45:10

5. strptimeを使った活用例

5. strptimeを使った活用例
5. strptimeを使った活用例

この関数を使うと、こんなことが簡単にできます。

  • 日付を元に、曜日を表示する
  • 現在の日付との差を計算する
  • 入力された日付が未来か過去かを判断する

例:日付の差を出す


from datetime import datetime

input_date = "2025-09-03"
d = datetime.strptime(input_date, "%Y-%m-%d")
now = datetime.now()
diff = now - d
print(f"今日との差は {diff.days} 日です")

今日との差は -1 日です

6. 文字列から日付に変換できなかったときのエラー対策

6. 文字列から日付に変換できなかったときのエラー対策
6. 文字列から日付に変換できなかったときのエラー対策

間違った形式の文字列を変換しようとすると、「ValueError」というエラーが出ます。そんなときは、try-except構文でエラー処理をしておくと安心です。


try:
    date_str = "2025-09-03"
    parsed = datetime.strptime(date_str, "%Y/%m/%d")
except ValueError:
    print("日付の形式が正しくありません!")

日付の形式が正しくありません!

このように書くと、エラーが出てもプログラムが止まらずに動き続けます。

7. datetimeとの違いがわからない人へ

7. datetimeとの違いがわからない人へ
7. datetimeとの違いがわからない人へ

strptimeは「文字列 → 日付」に変換する関数で、逆に「日付 → 文字列」にしたいときは、strftimeという関数を使います。覚え方は、「strp」はparse(読み取る)、「strf」はformat(書き出す)です。

8. パソコン初心者の方向け補足

8. パソコン初心者の方向け補足
8. パソコン初心者の方向け補足

文字列(もじれつ)とは、コンピューターの中で「文章」や「記号」のかたまりを意味します。「2025年9月3日」や「こんにちは」などがそれに当たります。

そして日付というのは、コンピューターが「計算」や「順番」で使えるように変換した「特別な情報」です。

strptimeは、文字のままでは使えない「日付のような文字」を、パソコンが計算できる「本物の日付データ」にしてくれる道具なのです。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
PHP
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
New2
PHP
PHP の文字列の基本操作(連結・切り出し・長さ)の使い方
New3
PHP
PHPのメール送信でSPF・DKIM認証設定を完全解説!初心者でもわかるメール認証の基本
New4
Python
PythonでAPIのパフォーマンスを向上させる方法!キャッシュ活用を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.2
Java&Spring記事人気No2
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.3
Java&Spring記事人気No3
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.5
Java&Spring記事人気No5
PHP
PHPのHTMLメールの作成方法を完全ガイド!初心者でもわかるメール送信の基本
No.6
Java&Spring記事人気No6
Python
Pythonの例外を発生させる方法を完全解説!raise文の使い方を初心者向けにやさしく説明
No.7
Java&Spring記事人気No7
Python
Pythonで2次元リストを作成・操作する方法(リストのリスト)
No.8
Java&Spring記事人気No8
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方