Ruby strftimeフォーマットディレクティブリファレンス

RubyのTime#strftimeフォーマットディレクティブの完全リファレンス。パーセントベースのトークン、パディング修飾子、Pythonのstrftime実装との違いを解説。

Language-Specific

詳細な説明

Ruby strftimeディレクティブ

RubyのTime#strftimeDate#strftimeメソッドは、C標準ライブラリから継承されたパーセント接頭辞ディレクティブを使用し、Pythonと非常に似ています。ただし、Rubyにはいくつかの追加ディレクティブと修飾フラグがあります。

Ruby固有の追加機能

  • %e — スペースパディングの日
  • %k — スペースパディングの24時間制の時
  • %l — スペースパディングの12時間制の時
  • %P — 小文字のam/pm
  • %L — ミリ秒(3桁)
  • %N — ナノ秒までの端数秒(最大9桁)
  • %:z — コロン区切りのオフセット(+09:00 vs +0900)
  • %s — 文字列としてのUnixタイムスタンプ

修飾フラグ

%とディレクティブの間に修飾フラグをサポート:

フラグ 効果
- パディングなし %-d3
_ スペースパディング %_m 2
0 ゼロパディング(デフォルト) %0d03
^ 大文字 %^bFEB

よく使うパターン

Time.now.strftime("%Y-%m-%d %H:%M:%S")        # "2026-02-28 14:30:00"
Time.now.strftime("%B %-d, %Y")                # "February 28, 2026"
Time.now.strftime("%a, %d %b %Y %H:%M:%S %z") # RFC 2822
Time.now.strftime("%Y-%m-%dT%H:%M:%S%:z")     # ISO 8601

ユースケース

Ruby strftimeはRailsビューテンプレートでの日付表示、Active Recordの日付スコーピング、Sidekiqジョブスケジューリングログ、APIシリアライザー、rakeタスク出力、ログローテーションやバックアップ命名のDevOpsスクリプトで使用されます。

試してみる — Date Format Reference & Tester

フルツールを開く