将日期转换为字符串而不应用减法

时间:2015-08-02 16:42:53

标签: ruby ruby-on-rails-4

我正在尝试使用Ruby将2015-08-02转换为“2015-08-2”。如果我这样做:

(2015-08-02).to_s => SyntaxError: (irb):21: Invalid octal digit

2015-08-02.to_s => SyntaxError: (irb):21: Invalid octal digit

1 个答案:

答案 0 :(得分:3)

调解此事:

require 'date'

date = Date.parse('2015-08-02') # => #<Date: 2015-08-02 ((2457237j,0s,0n),+0s,2299161j)>

此时,包含日期的字符串已被解析为Date对象。

date.strftime('%Y-%m-%e') # => "2015-08- 2"
可以使用strftime

date返回到字符串,其中有多种方式可以表示日期的各个部分。在这种情况下,您不需要零填充日。 Ruby支持使用%e这是一个空间填充的日子,但是你有空间来处理:

date.strftime('%Y-%m-%e').delete(' ') # => "2015-08-2"