Ruby strftime:如果为零则不显示分钟

Chi*_*fic 2 ruby strftime

我正在尝试实现这种风格的输出:

Time.new(2021,9,19,6,0,0) => "6am"
Time.new(2021,9,19,6,30,0) => "6:30am"
Run Code Online (Sandbox Code Playgroud)

我得到的最接近的是strftime('%l:%-M%P')

Time.new(2021,9,19,6,0,0).strftime('%-l:%-M%P') => "6:0am"
Time.new(2021,9,19,6,30,0).strftime('%-l:%-M%P') => "6:30am"
Run Code Online (Sandbox Code Playgroud)

是否有已知的方法来抑制%M%-M当为零时,或者我需要在这里做我自己的事情?

Ste*_*zyn 5

您可能必须做自己的事情,但这是一种简单的方法。

time.strftime('%-l:%M%P').sub(':00', '')
Run Code Online (Sandbox Code Playgroud)

  • 亲爱的日记。今天,有人认为我的答案比@CarySwoveland 的更好。:D (2认同)