如何使用算术运算符将Ruby DateTime
格式化为字符串?
通常情况:
time = Time.now.utc
#=> 2016-04-26 12:00:19 UTC
time.strftime("%Y %m")
#=> "2016 04"
例如,我希望从零开始索引的月份输出(1月是0月,12月是11月):
time.strftime("%Y %(m-1)") # or something similar method
#=> "2016 03"
or
#=> "2016 3"
注意:不要更改time
答案 0 :(得分:1)
注意这是原始问题的答案,而不是问题发生变化后的答案。
您无法使用strftime
执行此操作。用插值或字符串格式来做。
"%02d" % (time.month - 1)
# => "03"
答案 1 :(得分:1)
strftime
不允许你进行参数算术,但你可以将year
和month
分开,在月份执行所需的操作,并以字符串形式连接。
> time.strftime("%Y ") + "#{time.strftime('%m').to_i - 1}"
#=> "2016 3"
> time.strftime("%Y ") + (time.strftime('%m').to_i - 1).to_s
#=> "2016 3"
或强>
> time.year.to_s + " #{time.month - 1}"
#=> "2016 3"