Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Time#strftimeのフォーマット文字列に関するあれこれ(その1)

Time#strftimeは、曜日、年度指定のよくあるフォーマット文字列以外にも便利なショートカットがあります。

実例

20文字詰め、全文大文字で月の英語名を出す

月の英語名は「%B」です

Time.now.strftime("%B")
#=> "December"

ここに文字詰め「_NUM」を突っ込み…

Time.now.strftime("%20B")
#=> "            December"

さらに文字列の大文字小文字変換「#」を突っ込むと*1

Time.now.strftime("%#_20B")
#=> "            DECEMBER"

と、制御構造や正規表現抜きで書くことができます。

余談

「%B」と文字詰め自体はrubyのprintf構文にも採用されていますが、前者は挙動が違います。

sprintf("%#20b", "10")
=> "              0B1010"

*1:まとめ系フォーマットについては適用外です。これについては次回記事にします。