我知道有几十个类似的问题在那里,更何况在Interwebs一般无数的文章,但我仍然有一个很难理解如何使用Rails的工作时间区域内部。帮助Rails中所著的Grokking时间和时区的3
目前,我有我的应用程序文件中配置config.time_zone = 'Eastern Time (US & Canada)'
,因为那是我和其他的项目管理员。拥有该网站的公司位于加利福尼亚州,因此它们将处于太平洋时间。该应用程序有全球受众,虽然我们还没有这样做,但我们最终将实现用户首选时区。
所以我目前的问题:
我知道存储并分别检索时,但什么是查看特定日期时间属性的本地版本的正确方法Rails的魔术般地变换日期时间列的值,并从UTC ?
当将一个使用
Time.now
与Time.zone.now
与Time.now.in_time_zone
与DateTime.now
与DateTime.now.in_time_zone
?什么是比较与其他一些相对于当前配置的时区特定的时间上面所列的方法或给定datetime属性的正确方法?使用UTC?
我们会有一些时间敏感的东西一样,需要根据应用程序的时区在特定时间对外公布,如何使应用程序的文章做到这一点,而不是到目前在我们指定的时区的比较配置一个(假定时区实现用户?)
(新问题),如果我在以后的日子改变
config.time_zone
到UTC
会发生什么?我是否必须重置数据库中的所有时间,否则会影响旧时代?
这是一个很好的问题;我还没有找到关于正确实施时区的优秀文档。我会在列表中增加两个问题:'6。 Rails是否对夏令时很敏感和/或你如何实现敏感的时区支持?'和'7。 “对于日期列与日期时间列,Rails如何处理时区和DST有什么区别?'也许''8。这个数据库是不可知的,还是需要以不同的方式处理SQLite vs. MySQL与其他数据库? – Clay
@Clay:你能找到关于这些问题的更多信息吗?我仍然在寻找关于这个主题的更多信息。 –
我还没有找到太多好的信息。使用时区很容易成为我正在使用的爱好应用程序中最令人沮丧且耗时的部分。有一个很好的答复,我问这个问题:http://stackoverflow.com/questions/8466903/rails-3-1-querying-postgres-for-records-within-a-time-range但它只是相关的Postgres的。 – Clay