Python strftimeとstrptimeのフォーマットコード
Pythonのstrftimeおよびstrptimeフォーマットコードの完全リファレンス。datetimeモジュールによる日付のフォーマットとパースのパーセントディレクティブ構文を解説。
Language-Specific
詳細な説明
Python strftime / strptimeフォーマットコード
Pythonのdatetimeモジュールは、フォーマット(strftime)とパース(strptime)の両方にパーセント接頭辞のディレクティブを使用します。この構文はC標準ライブラリに由来し、RubyやPerlでも使用されています。
主なディレクティブ
| ディレクティブ | 意味 | 例 |
|---|---|---|
%Y |
年(4桁) | 2026 |
%y |
年(2桁) | 26 |
%m |
月(ゼロパディング) | 02 |
%-m |
月(パディングなし) | 2 |
%B |
月名(完全) | February |
%b |
月名(略語) | Feb |
%d |
日(ゼロパディング) | 28 |
%A |
曜日名(完全) | Saturday |
%a |
曜日名(略語) | Sat |
%H |
24時間制の時 | 14 |
%I |
12時間制の時 | 02 |
%M |
分 | 30 |
%S |
秒 | 00 |
%p |
AM/PM | PM |
%j |
年内日数 | 059 |
%z |
UTCオフセット | +0900 |
フォーマット vs パース
from datetime import datetime
# フォーマット(datetime → 文字列)
dt = datetime(2026, 2, 28, 14, 30, 0)
dt.strftime("%Y-%m-%d %H:%M:%S") # "2026-02-28 14:30:00"
# パース(文字列 → datetime)
datetime.strptime("2026-02-28 14:30:00", "%Y-%m-%d %H:%M:%S")
プラットフォーム固有のディレクティブ
%-接頭辞(例:%-d、%-m)はLinux/macOSではゼロパディングを除去しますが、Windowsではサポートされていません。Windowsでは代わりに%#dと%#mを使用してください。
ユースケース
Python strftimeパターンは、ロギング設定、Django/Flaskテンプレートの日付レンダリング、pandasによるデータサイエンスレポート生成、CSV/Excelの日付列フォーマット、cronジョブ出力、外部APIやファイル名からの日付パースに不可欠です。