Ruby中带前导零的月份如何表示?

9

我有一个 Ruby 中的 Date 对象。

当我执行 myobj.month 时,我得到了 8。如何获得带有前导零的日期月份,例如 08

day 同理。

最终我想要的是 2015/08/05


你有什么问题? - Roman Kiselenko
你知道 http://apidock.com/ruby/DateTime/strftime 吗?它的 %d - 月份中的日期,零填充 (01..31) 可以用来获取日期中的天数。例如 >> Time.new(1,2,5).strftime("%d") => "05" - Roman Kiselenko
不是,但那看起来确实是解决我的问题的好方法。请随意编写完整的答案以获得积分。 - Nathan H
3
你可以使用 myobj.strftime("%m") 来获取月份。对于你期望的结果 myobj.strftime("%Y/%m/%d"),请参考这篇文档:http://ruby-doc.org/stdlib-2.2.3/libdoc/date/rdoc/Date.html#method-i-strftime - Tushar
我认为你被踩的原因是你在问如何获取一个带前导零的Fixnum - Cary Swoveland
1个回答

12

可以使用格式化字符串输出

示例:

puts sprintf('%02i', 8)
puts '%02i' % 8
%02i 是用于表示带有前导零的两位整数(数字)的格式。 具体细节可以在sprintf文档中找到。
对于您特定的日期情况,您可以使用 Date#strftime 方法或 Time#strftime 方法。
require 'time'
puts Time.new(2015,8,1).strftime("%m")

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