红宝石 – 如何在没有前导零或领先空间的情况下写下时间?

前端之家收集整理的这篇文章主要介绍了红宝石 – 如何在没有前导零或领先空间的情况下写下时间?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Ruby 1.9程序中,我想格式化当前的时间,如下午1:51.我应该在一天中使用什么格式的代码(在这个例子中为1)?
Time.now.strftime '%a %I:%M %p' #=> "Thu 01:51 PM"
Time.now.strftime '%a %l:%M %p' #=> "Thu  1:51 PM"

%我有一个前导零(01). %l具有前导空间(1).我在strftime documentation中没有看到任何其他格式代码.我不能使用.lstrip,因为空格在字符串的中间.我可以使用.gsub(/ /,“”),但是我想知道是否有更少的黑客,更简单的方法.

解决方法

Time.now.strftime '%a %-l:%M %p' #=> "Thu 1:51 PM"

写入%-l而不是%l. – 带领空格和零.

您也可以使用其他格式代码. Ruby strftime文档甚至提到%-m和%-d,尽管没有提到可以使用任何代码.因此,%-I将给出与%-l相同的结果.但是我建议使用%-l,因为使用l而不是我,这意味着你不需要任何东西在开始 – 它写的空间看起来更加意外.

您还可以看到an exhaustive list of Ruby 1.8 strftime format codes,包括与 – 和类似的语法_和0.它说,Mac OS X上的Ruby 1.8不支持那些扩展语法,但不要担心:它们在我的OS X上的Ruby 1.9中工作机.

原文链接:/ruby/272376.html

猜你在找的Ruby相关文章