【问题标题】:Rails custom TimeZoneRails 自定义时区
【发布时间】:2010-03-23 19:27:21
【问题描述】:

如何使用自定义时区设置我的 Rails 应用程序?我想使用 UTC-04:00 设置我的应用程序时区,而不使用夏令时。

更新:为了澄清我的问题,我知道我可以在 environment.rb 文件中使用 TimeZone constants 中的名称之一设置时区名称。我希望我的应用程序时区为 UTC -04:00 而没有夏令时。

谢谢, 苏萌

【问题讨论】:

    标签: ruby-on-rails timezone


    【解决方案1】:

    假设您想要一个不使用 DST 的时区,并且基本上始终跟踪东部标准时间(也称为东部流行时间)。您希望它始终是 -05:00 偏移量。

    使用时区Etc/GMT+5。 Rails 将从 TZInfo 延迟加载不在其正常列表中的时区,因此您可以从中挑选:http://tzinfo.rubyforge.org/svn/trunk/tzinfo/lib/tzinfo/definitions/Etc/

    在我的 Rails 3.2 rails 控制台中,有一些例子可以证明这一点:

    夏令时示例。 10 月 4 日是夏令时。您会希望东部时间和您的特殊时区的时间减少一。 UTC 中的 2011-10-05 04:57:23 应为东部夏令时间 2011-10-05 00:57:23。

    1.9.3p0 :014 > DateTime.civil(2011,10,5,4,57,23)
     => Wed, 05 Oct 2011 04:57:23 +0000 
    1.9.3p0 :015 > DateTime.civil(2011,10,5,4,57,23).in_time_zone('Eastern Time (US & Canada)') 
     => Wed, 05 Oct 2011 00:57:23 EDT -04:00 
    1.9.3p0 :016 > DateTime.civil(2011,10,5,4,57,23).in_time_zone('Etc/GMT+5')
     => Tue, 04 Oct 2011 23:57:23 GMT+5 -05:00 
    

    非夏令时示例。 12 月 1 日是标准时间。您会期望东部时间和您的自定义“总是 EST”是等效的。 2011-12-01 02:30:45 在 EST 和您的特殊时区中应该是 2011-11-30 21:30:45。

    1.9.3p0 :010 >   DateTime.civil(2011,12,1,2,30,45)
     => Thu, 01 Dec 2011 02:30:45 +0000 
    1.9.3p0 :012 > DateTime.civil(2011,12,1,2,30,45).in_time_zone('Eastern Time (US & Canada)')
     => Wed, 30 Nov 2011 21:30:45 EST -05:00 
    1.9.3p0 :013 > DateTime.civil(2011,12,1,2,30,45).in_time_zone('Etc/GMT+5')
     => Wed, 30 Nov 2011 21:30:45 GMT+5 -05:00 
    

    为什么是GMT+5 而不是GMT-5?我不完全确定。我原以为它是 GMT-5,但这就是等时区在 TZInfo 中的工作方式。

    【讨论】:

      【解决方案2】:

      通常,您只希望在您居住的地点不实行夏令时时执行此操作。在您的特定情况下,您很幸运,可以使用“拉巴斯”时区。根据this website,它不实行夏令时。

      您始终可以运行 rake time:zones:all 并查看哪些 UTC 偏移量对应于您有兴趣使用的偏移量。然后用谷歌搜索这些偏移量,看看它们在一年中是否发生变化。

      我不知道告诉 Rails 你想要 UTC +/- 一个固定偏移量的一般方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-26
        • 2015-08-23
        • 1970-01-01
        相关资源
        最近更新 更多