首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails时区和夏令时

Rails时区和夏令时
EN

Stack Overflow用户
提问于 2012-11-14 19:54:03
回答 2查看 12.6K关注 0票数 17

有一段时间,我试图理解这个时区时间是如何工作的,我有一个问题:

今天在我的国家,我们是夏令时(GMT-2)。因此,我的应用程序的用户输入一个时间,比如上午11:00,然后发布表单。据我所知,rails会将这个日期转换为UTC并保存在数据库中(我的例子是mysql),比如:01:00 01。

当我恢复该记录时,我必须转换为本地时间才能显示。好的?

我的问题是,假设这个日期/时间代表未来的日期/时间,当我的国家从夏季时间(GMT-3)出来的时候。Rails将节省01:00 01?今天,在夏令时,当地时间会怎样?那么在未来,这个当地时间会是怎样的呢?

基本上,我总是需要向用户显示11:00AM

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-07 20:04:54

7个月后,你问了,但也许skip_time_zone_conversion_for_attributes=会有所帮助-它告诉AcitveRecord不要在存储或检索时转换时区。请参阅ActiveRecord Timestamp,其中显示了示例:

代码语言:javascript
复制
class Topic < ActiveRecord::Base
  self.skip_time_zone_conversion_for_attributes = [:written_on]
end
票数 3
EN

Stack Overflow用户

发布于 2012-11-14 22:18:30

时区可以在以下几个方面发挥作用:操作系统(或用户帐户)默认设置、数据库服务器、Rails environment.rb

关键是要确保所有日期都以UTC时区存储,然后以任何当地时区显示。听起来你就是这么做的。

因此,你的问题似乎可以归结为“如果是夏令时,我希望偏移-3小时,否则偏移-2小时”。Rails时间扩展让您像Time.zone.now.utc_offset一样确定当前的偏移量,Time#dst?告诉您,如果是夏令时,您可以有条件地减去额外的一个小时(3600百秒)。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13378327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档