Ron*_*ity 12 ruby-on-rails ruby-on-rails-3
在Rails中,我看到我有几个选项来解析日期和日期时间.解析日期的最佳做法是什么,其唯一目的是通过ActiveRecord将它们保存到数据库中?为什么?
Time.zone.parse(...)
Time.parse(...)
DateTime.parse(...)
Run Code Online (Sandbox Code Playgroud)
小智 17
如果您只想写入ActiveRecord,请使用Time.zone.parse.
应避免使用DateTime.如果您正在处理日期,则应使用Date.parse.
除此之外,它取决于输入是否带有时区信息,当前时区设置的内容,以及您是否需要数据中的时区.
Time.zone.parse将返回一个ActiveSupport :: TimeWithZone,默认为UTC.
> Time.zone.parse("12:30")
=> Thu, 10 May 2012 12:30:00 UTC +00:00
Run Code Online (Sandbox Code Playgroud)
Time.parse将返回一个Time,如果在输入中指定了区域,则返回本地TZ.
> Time.parse("12:30")
=> 2012-05-09 12:30:00 -0700
Run Code Online (Sandbox Code Playgroud)
有关Ruby时间比较和精度的更详细说明,请阅读此博客文章:
http://blog.solanolabs.com/rails-time-comparisons-devil-details-etc/