如何在 ruby 中将一位数变成两位数?
Time.new.month
返回 10 月之前任何月份的一位数字表示形式(例如 6 月是 6
),但我想要 2 位数格式(即而不是 <代码>6我想要06
)。
我编写了以下解决方案,我要求查看一些其他/更好的解决方案。
s = 6.to_s; s[1]=s[0]; s[0] = '0'; s #=> '06'
Time.new.month
returns a single digit representation of any month prior to October (e.g. June is 6
), but I want a 2-digit format (i.e. instead of 6
I want 06
).
I wrote the following solution, and I am asking to see some other/better solutions.
s = 6.to_s; s[1]=s[0]; s[0] = '0'; s #=> '06'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
对于您的需要,我认为最好的仍然是
如上所述,但对于一般用例,我使用的方法
取决于上下文,我也使用这个方法来做同样的事情:
这是包含所有支持格式的文档:http://ruby-doc.org/core-2.3.1/Kernel.html#method-i-sprintf
For your need I think the best is still
as mentioned but for general use case the method I use is
depending on the context I also use this one which does the same thing:
Here is the documentation with all the supported formats: http://ruby-doc.org/core-2.3.1/Kernel.html#method-i-sprintf
您可以使用类似
printf
的语法:或者
因此:
请参阅 字符串#%。
You can use this
printf
-like syntax:or
So:
See the documentation for String#%.
Mat 的回答指出您可以使用
%
运算符,这很好,但我想指出另一种方法,即使用的
类:rjust
方法字符串Mat's answer pointing out that you can use the
%
operator is great, but I would like to point out another way of doing it, using therjust
method of theString
class:如果您尝试格式化整个日期或日期和时间(而不仅仅是月份),您可能需要使用
strftime
:这将使您可以轻松访问所有常用的日期和时间格式。
If you're trying to format an entire date or date and time (rather than just the month), you might want to use
strftime
:That will give you easy access to all the usual date and time formats.
使用 sprintf:例如:
您可以在 irb 中
You can use sprintf:
e.g. in irb: