在
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中工作机.