Rails转换日期格式

时间:2012-06-27 12:25:58

标签: ruby-on-rails date

我的应用程序中有一个表单输入,它接受DD / MM / YYYY格式的日期,例如02/05/2012是2012年5月2日。

将此转换为适合通过ActiveRecord添加到数据库的格式的最佳方法是什么?

在添加到数据库之前,有没有简单的方法将02/05/2012转换为05/02/2012?

3 个答案:

答案 0 :(得分:6)

这类似于Getting rails to accept European date format (dd/mm/yyyy)

在模型中,创建一个setter方法,其中“my_date”是您的数据库字段。

def my_date=(val)
  Date.strptime(val, "%d/%m/%Y") if val.present?
end

答案 1 :(得分:3)

对于此特定格式,您可以拨打DateTime.parse

DateTime.parse("02/05/2012") # => Thu, 02 May 2012 00:00:00 +0000

答案 2 :(得分:3)

2年后,但这也是我遇到的事情,这是我的修复。

在您看来,使用: <%= l article.created_at,format :: euro%> **确保添加l

然后在/config/locales/en.yml中添加:

en:

 time:

  formats:

    euro: "%d/%m/%Y"           

**你也可以添加,欧元:"%D"以美国日期格式显示。

感谢。