Rails:没有连字符的日期

时间:2011-09-29 14:58:25

标签: ruby-on-rails ruby

我想接受没有连字符的日期params,例如20110929。在Rails / Ruby中,如何将其转换为DateTime对象?我是否需要手动编辑字符串,添加适当的连字符,还是有一些我不知道的魔法?

谢谢你们!

修改

回答了我自己的问题,但遗憾的是我还不能接受(声望很低):

DateTime.parse('20110929')

编辑2:

如下所述,我上面的“回答”可能不是最好的。见下面接受的答案。

2 个答案:

答案 0 :(得分:1)

在Ruby 1.9.2中,您可以使用#strptime。在某些情况下,如果要解析的日期格式很常见,#parse也应该有用。

require 'date'
require 'time'

DateTime.strptime("20110929", "%Y%m%d")
# => #<DateTime: 2011-09-29T00:00:00+00:00 (4911667/2,0/1,2299161)>

答案 1 :(得分:1)

您可能想要使用Date.strptime(params[:the_date], '%y%m%d')。请参阅apidock