Ruby strftime:如果为零则不显示分钟
Ruby strftime: don't show minutes if zero
我正在尝试实现这种输出风格:
Time.new(2021,9,19,6,0,0) => "6am"
Time.new(2021,9,19,6,30,0) => "6:30am"
我得到的最接近的是 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"
是否有一种已知的方法可以在零时抑制 %M
或 %-M
,或者我需要在这里做我自己的事情吗?
您可能需要自己做事,但这是一种简单的方法。
time.strftime('%-l:%M%P').sub(':00', '')
我正在尝试实现这种输出风格:
Time.new(2021,9,19,6,0,0) => "6am"
Time.new(2021,9,19,6,30,0) => "6:30am"
我得到的最接近的是 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"
是否有一种已知的方法可以在零时抑制 %M
或 %-M
,或者我需要在这里做我自己的事情吗?
您可能需要自己做事,但这是一种简单的方法。
time.strftime('%-l:%M%P').sub(':00', '')