コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

Rubyのsrtftimeにて月や日をゼロパディングしたくない場合はマイナスを使う

ゼロ埋め、いわゆるゼロパディングに関してこういう書きかたがあるとはあんまり知らなかったのでメモ

環境

$ ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin17]

使い方

以下のように時間を設定する

t = Time.new(2001,2,3,4,5,6,"+09:00")

フォーマッタに - を付け加えると0でなくなる

t.strftime("Printed on %m/%d/%Y")
# => "Printed on 02/03/2001"
t.strftime("Printed on %m/%-d/%Y")
# => "Printed on 02/3/2001"

ドキュメント曰く

glibcの仕様を踏襲している

-: 左寄せにする(0埋めや空白埋めを行わない - Time#strftime (Ruby 2.7.0 リファレンスマニュアル)

参考リンク