strftime中没有小时的填充

18
当使用strftime @tzformat = "%F,%l:00 %p"时:
我想在逗号和小时之间正好有一个空格。但是%l在为10、11和12提供空格时没有空格,而如果我放置“ %l”,则对于0-9会得到两个空格(一个来自填充,另一个来自我添加的空格)。
月份没有填充选项,但是我没有看到小时也有相同的选项。
我错过了什么?

1
请展示您的输入数据和期望的输出,以及您代码的示例。 - the Tin Man
1个回答

33

-修饰符可以去除填充。如果你使用%-l而不是%l,它将完全不会放置空格,这时你可以手动添加一个空格。

Time.now.strftime @tzformat = "%F, %-l:00 %p"            #=> "2015-01-29, 8:00 PM"
(Time.now + 3600*2).strftime @tzformat = "%F, %-l:00 %p" #=> "2015-01-29, 10:00 PM"

2
谢谢 Dane。所以,我错过的是 http://www.ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/DateTime.html#method-i-strftime 中小时部分没有像月份那样的示例。我应该阅读介绍文本,而不仅仅是示例! - Martin Cleaver

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接