カテゴリ: Python 更新日: 2026/01/14

PythonでISO 8601形式の日時に変換する方法を完全解説!初心者でもわかる時間フォーマットの基本

Pythonで時間のフォーマットをISO 8601に変換する方法
Pythonで時間のフォーマットをISO 8601に変換する方法

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

生徒

「Pythonで時間を表示するときに、ISO 8601っていう形式に変換できるって聞いたんですが、何のことかわかりません…」

先生

「いい質問ですね。ISO 8601は、世界中で共通に使われる日時の書き方です。Pythonではdatetimeモジュールを使えば、簡単にこの形式に変換できますよ。」

生徒

「どんな書き方なんですか?そして初心者でもできるんでしょうか?」

先生

「もちろんです!ISO 8601の仕組みと、Pythonでの変換方法を基礎からやさしく解説していきましょう。」

-

1. ISO 8601とは?

1. ISO 8601とは?
1. ISO 8601とは?

ISO 8601(アイエスオー はちろくまるいち)とは、日付や時間を表すための国際的な標準フォーマットです。例えば、次のような書き方がISO 8601の形式です:

  • 2025-09-03(日付)
  • 2025-09-03T14:30:00(日付と時刻)
  • 2025-09-03T14:30:00+09:00(日付・時刻・タイムゾーン)

この形式は、どの国でも同じ順番で表記されるので、機械にとっても人にとっても分かりやすくなっています。

2. Pythonのdatetimeオブジェクトとは?

2. Pythonのdatetimeオブジェクトとは?
2. Pythonのdatetimeオブジェクトとは?

Pythonでは、datetime(でいとたいむ)モジュールを使って日付や時間を扱います。現在の日時を取得するには次のようにします。


from datetime import datetime

now = datetime.now()
print(now)

2025-09-03 14:30:00.123456

このように、現在の日時が「年-月-日 時:分:秒.マイクロ秒」の形式で表示されます。

3. datetimeをISO 8601形式に変換する方法

3. datetimeをISO 8601形式に変換する方法
3. datetimeをISO 8601形式に変換する方法

Pythonのdatetimeオブジェクトは、isoformat()というメソッドを使えば簡単にISO 8601形式に変換できます。


from datetime import datetime

now = datetime.now()
iso_time = now.isoformat()
print(iso_time)

2025-09-03T14:30:00.123456

Tは日付と時刻の区切りです。この形式がISO 8601です。

4. 秒以下やマイクロ秒を省略したいとき

4. 秒以下やマイクロ秒を省略したいとき
4. 秒以下やマイクロ秒を省略したいとき

isoformat()メソッドでは、秒以下やマイクロ秒(百万分の一秒)を省略することもできます。


from datetime import datetime

now = datetime.now()
iso_time = now.replace(microsecond=0).isoformat()
print(iso_time)

2025-09-03T14:30:00

このように、不要な情報をカットして見やすいISO 8601形式にすることも可能です。

-

5. タイムゾーンを含めたISO 8601形式に変換する

5. タイムゾーンを含めたISO 8601形式に変換する
5. タイムゾーンを含めたISO 8601形式に変換する

タイムゾーン(時差)も含めたISO 8601形式が必要なケースでは、datetimeオブジェクトにタイムゾーン情報をつけておく必要があります。


from datetime import datetime, timezone, timedelta

japan_tz = timezone(timedelta(hours=9))
now = datetime.now(japan_tz)
print(now.isoformat())

2025-09-03T14:30:00.123456+09:00

+09:00は日本時間(JST)を表します。タイムゾーン付きのISO形式は、APIや国際的なデータ連携でもよく使われます。

6. ISO 8601形式の文字列をdatetimeに変換する方法

6. ISO 8601形式の文字列をdatetimeに変換する方法
6. ISO 8601形式の文字列をdatetimeに変換する方法

逆に、ISO 8601形式の文字列からdatetime型に戻すにはfromisoformat()を使います。


from datetime import datetime

iso_str = "2025-09-03T14:30:00"
dt = datetime.fromisoformat(iso_str)
print(dt)

2025-09-03 14:30:00

文字列がT区切りで正しいISO形式になっていれば、そのままdatetimeに変換できます。

7. 応用:JSONファイルやAPIでの利用

7. 応用:JSONファイルやAPIでの利用
7. 応用:JSONファイルやAPIでの利用

ISO 8601形式は、Pythonで作るWeb APIやJSONファイルなどでもよく使われます。

たとえば、APIのレスポンスで次のような形をよく見かけます:


"created_at": "2025-09-03T14:30:00+09:00"

このように、標準化されたフォーマットで日付を扱うことで、異なるシステム間でも正確にデータをやり取りできるのです。

8. 注意点とトラブル対策

8. 注意点とトラブル対策
8. 注意点とトラブル対策
  • タイムゾーンがついていないときは +00:00 とみなされることがある
    → サーバーやツールによって解釈が異なる場合があるため注意が必要です。
  • 文字列の形式が少しでも違うとエラーになります
    Tがなかったり、時・分・秒が足りないとfromisoformat()でエラーになる可能性があります。
  • APIと連携する場合はUTC(協定世界時)で処理することが多い
    → Pythonではtimezone.utcを使えばUTCタイムでの変換が可能です。
コメント
コメント投稿は、ログインしてください

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

関連記事:
カテゴリの一覧へ
新着記事
New1
Python
PythonでISO 8601形式の日時に変換する方法を完全解説!初心者でもわかる時間フォーマットの基本
New2
PHP
PHPのマルチバイト文字列を正しく扱う方法!初心者向けにmb_strlenとmb_substrをやさしく解説
New3
PHP
PHP の break, continue の使い方を完全解説!初心者でもわかるループ制御
New4
Python
Pythonで日本の元号を扱う方法を徹底解説!令和・平成の変換もバッチリ対応
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで辞書のキー・値・アイテムを取得する方法(keys(), values())
No.2
Java&Spring記事人気No2
Python
Pythonでエラースタックトレースを表示・取得する方法を徹底解説!初心者向け例外処理入門
No.3
Java&Spring記事人気No3
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Python
PythonでMySQLに接続する方法を完全解説!初心者でもわかるpymysqlの基本
No.5
Java&Spring記事人気No5
PHP
PHP の日付と時間の取得(date, time, strtotime)を完全解説!初心者でもわかる使い方
No.6
Java&Spring記事人気No6
PHP
PHPで画像ファイルをアップロードする方法を初心者向けに徹底解説!わかりやすい画像処理入門
No.7
Java&Spring記事人気No7
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.8
Java&Spring記事人気No8
Python
Pythonのライブラリとは?標準ライブラリとサードパーティライブラリの違いを初心者向けに解説!
-
-