代码之家  ›  专栏  ›  技术社区  ›  pzin

Rails没有应用夏令时

  •  0
  • pzin  · 技术社区  · 8 年前

    我的服务器时钟设置为伦敦时间(我目前住在GMT+0区域)。的输出 timedatectl status 给我这个:

      Local time: Mon 2016-05-23 08:13:06 BST   Universal time: Mon 2016-05-23 07:13:06 UTC
        RTC time: Mon 2016-05-23 07:13:06
        Timezone: Europe/London (BST, +0100)
     NTP enabled: yes NTP synchronized: no  RTC in local TZ: no
      DST active: yes  Last DST change: DST began at
                  Sun 2016-03-27 00:59:59 GMT
                  Sun 2016-03-27 02:00:00 BST  Next DST change: DST ends (the clock jumps one hour backwards) at
                  Sun 2016-10-30 01:59:59 BST
                  Sun 2016-10-30 01:00:00 GMT
    

    在我的申请中。rb文件我设置时区:

    config.time_zone = 'London'
    

    在本地,它工作正常:

    Time.now.dst?
    # true
    Time.now.hour
    # 8
    

    但在生产中,似乎没有启用DST。

    Time.now.dst?
    # false
    Time.now.hour
    # 7
    

    我不确定这是Rails的问题还是服务器配置错误,但对我来说似乎是正确的。

    1 回复  |  直到 8 年前
        1
  •  2
  •   Jose Diaz-Gonzalez    8 年前

    如果此应用程序在docker容器中运行,则主机服务器的时区可能不会应用于容器。您可能可以设置 TZ 环境变量设置为您想要的任何时区,ruby会选择它。

    我强烈推荐 对应用程序/数据库使用非UTC时区,因为它几乎肯定会导致问题。

    充分披露:我是一个dokku维护者。