Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails解析模型中的日期时间_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails Rails解析模型中的日期时间

Ruby on rails Rails解析模型中的日期时间,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我从表单中获取datetime字符串,示例值如下: 2014-02-21 13:00:00 我希望能够在将其保存到模型中之前将其转换为datetime 有没有办法做到这一点,因为Rails 4在保存时似乎会自动将错误的日期放入其中试试看 Time.zone.parse("2014-02-21 13:00:00") 而不是 Time.parse("2014-02-21 13:00:00") 后者将“假定字符串在系统的时区中给定” 在应用程序.rb中添加您的时区作为默认时区,如下所示: con

我从表单中获取datetime字符串,示例值如下:

2014-02-21 13:00:00
我希望能够在将其保存到模型中之前将其转换为datetime

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

试试看

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

Time.parse("2014-02-21 13:00:00")
后者将“假定字符串在系统的时区中给定”


应用程序.rb中添加您的时区作为默认时区,如下所示:

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

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

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

你的意思是:Rails似乎自动输入了错误的日期?它在Heroku上,我的本地时间是墨尔本时间。你如何将它放入模型中,以便在模型中自动转换任何日期时间字符串?例如,我将使用。根据您的需要,如保存前
或验证前
。因此,如果字段名为start,您是否会执行类似于
date=DateTime.zone.parse(:start)