【完全ガイド】Pythonで日時を自由にフォーマットする方法|strftimeとstrptimeの使い方

python

Pythonでログを出力したり、レポートを作成したりする際、必ず出てくるのが日時のフォーマットですよね。

「2025-05-22 18:30:00」と表示したいのに、「Thu May 22 18:30:00 2025」みたいな変な形式になってしまった…そんな経験はありませんか?

Pythonでは、datetimeモジュールを使うことで自由自在に日時をフォーマットできるんです。

今回は、初心者にもわかりやすくstrftimestrptimeの使い方、代表的なフォーマット一覧などを解説します。


スポンサーリンク

Pythonで日時を扱うにはdatetimeモジュール

Pythonで日時を操作するには、標準ライブラリのdatetimeモジュールを使います。

from datetime import datetime

now = datetime.now()
print(now)  # 出力例:2025-05-22 18:30:00.123456

このままだとミリ秒付きで見にくいことがありますね。そんなときに活躍するのがフォーマット関数です。


日時を文字列に整形:strftimeの使い方

まずは、日時を読みやすい文字列に変換する方法を見てみましょう。

基本構文

日時オブジェクト.strftime("フォーマット文字列")

例:年月日と時刻をフォーマット

from datetime import datetime

now = datetime.now()
formatted = now.strftime("%Y/%m/%d %H:%M:%S")
print(formatted)  # 出力例:2025/05/22 18:30:00

これで、きれいに整形された日時が表示されます。

よく使うフォーマット指定子

指定子意味
%Y西暦(4桁)2025
%y西暦(下2桁)25
%m月(2桁)05
%d日(2桁)22
%H時(24時間)18
%I時(12時間)06
%M30
%S00
%A曜日(英語)Thursday
%a曜日(略称)Thu

この表を参考にすれば、必要な形式がすぐに作れますね。


文字列から日時に変換:strptimeの使い方

逆に、文字列を日時に変換したいときにはstrptimeを使います。

from datetime import datetime

date_str = "2025/05/22 18:30:00"
dt = datetime.strptime(date_str, "%Y/%m/%d %H:%M:%S")
print(dt)  # 出力:2025-05-22 18:30:00

フォーマット文字列はstrftimeと同じ構文です。文字列のパターンと合わせることが重要ですよ。


よくあるフォーマット例まとめ

実際の開発でよく使うパターンをまとめました。

目的フォーマット文字列出力例
日本式の年月日%Y年%m月%d日2025年05月22日
ファイル名用(記号NG)%Y%m%d_%H%M%S20250522_183000
ログファイルの日付付き%Y-%m-%d %H:%M:%S2025-05-22 18:30:00
日付のみ%Y-%m-%d2025-05-22
時刻のみ%H:%M:%S18:30:00

用途に合わせて使い分けると、とても便利です。


補足:タイムゾーンやISO形式も使いたい?

datetimeでは、タイムゾーンやISOフォーマットにも対応しています。

from datetime import datetime, timezone

now = datetime.now(timezone.utc)
print(now.isoformat())  # 出力例:2025-05-22T09:30:00+00:00

より高度なフォーマットが必要な場合は、pytzdateutilライブラリを使うと便利です。興味が出てきたら、ぜひ調べてみてください。


まとめ:strftimeとstrptimeで日時を自在に操ろう!

Pythonで日時を自在にフォーマットするには、strftime(整形)とstrptime(変換)を覚えるのが基本です。

フォーマット文字列のパターンさえ知っていれば、どんな表示にも対応可能なんです。

今日のまとめ

  • datetime.now()で現在時刻を取得
  • strftime()で日時を文字列に変換
  • strptime()で文字列を日時に変換
  • よく使うフォーマットパターンは表で覚えると便利!

コメント

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