Rails在模型中解析日期时间

时间:2014-02-26 07:38:19

标签: ruby-on-rails ruby ruby-on-rails-4

我从表单中获取日期时间字符串,示例值如下:

2014-02-21 13:00:00

我希望能够在将其保存到模型中之前将其转换为日期时间。

有没有办法做到这一点,因为Rails 4似乎在保存时会自动输入错误的日期

3 个答案:

答案 0 :(得分:1)

将您的时区添加为application.rb中的默认值,如下所示:

config.time_zone = 'Eastern Time (US & Canada)'
config.active_record.default_timezone = 'Eastern Time (US & Canada)'

答案 1 :(得分:0)

尝试

Time.zone.parse("2014-02-21 13:00:00")

而不是

Time.parse("2014-02-21 13:00:00")

因为后者将“假设字符串是在系统的时区中给出的”

Source and more about the topic

答案 2 :(得分:0)

尝试使用to_time或to_date_time方法。 它将字符串转换为日期时间格式

"2014-02-21 13:00:00".to_time 
"2014-02-21 13:00:00".to_datetime