【问题标题】:What timezone is Heroku server using?Heroku 服务器使用什么时区?
【发布时间】:2016-03-03 21:18:17
【问题描述】:

Heroku 的服务器使用什么时区?我正在尝试使用 node-cron 并设置时区,但我不明白 Heroku 使用的是什么时区。这是一个例子。

2015-11-30T09:16:45.874086+00:00

【问题讨论】:

  • +00:00 表示 GMT/UTC
  • 这显示的是 UTC,基本上 - +00:00 表明本地时间和 UTC 之间没有偏移。
  • 嗯,这是有道理的。 Heroku 日志时间很奇怪——在我的终端中发出“heroku 日志”后的约 30 分钟内,输出时间从 T04:00 到 T09:30。我也解释错了吗?
  • 也许您在 0400 和 0930 之间没有访问权限? heroku logs 将显示日志缓冲区的内容(如果有任何内容)。
  • @JohnBeynon 但我在 30 分钟内发出了两个“heroku 日志”命令

标签: heroku timezone


【解决方案1】:

默认情况下,Heroku 将以 UTC 格式返回当前时间的调用。

您可以通过 config 命令通过adding a TZ environment variable 手动设置应用的时区。请记住,您必须使用tz database time zone format。例如,如果您想将默认时区设置为美国中部时间,您可以使用以下命令(我假设您有/使用 heroku 工具带):

heroku config:add TZ="America/Chicago"

编辑:正如 treecoder 在下面的评论中指出的那样;如果您愿意,可以通过 Heroku 仪表板添加 TZ ENV 变量。打开应用程序的仪表板并导航到“设置”选项卡,然后在“配置变量”下单击“显示配置变量”按钮。然后您就可以添加TZ = America/Chicago(或您需要的任何时区)。

注意:TZ 环境变量不会影响日志。见第二条注释here

【讨论】:

  • 上述命令添加了一个ENV变量TZ。所以,我认为如果我们从 Heroku 仪表板手动执行此操作,那么我们可能不需要运行此命令。
  • @treecoder - 我没有考虑过,只是检查了一下,你是完全正确的;这样可行。有额外的选择总是好的。
  • 如果您之前使用过 hash_secret,可能会导致回形针出现巨大问题,因为更改 Heroku 上的 TZ 会使哈希无效 - 您无法再访问 s3 上的附件。
【解决方案2】:

据此,Heroku Help Log,你可以用 TZ 变量来改变它。但是,这永远不会改变您的日志时间,因为它们始终是 UTC。

【讨论】:

    【解决方案3】:

    Heroku 默认为 UTC。在heroku中打开您的应用程序并转到应用程序setting并单击Reveal Config Vars,如图所示

    你必须像图片一样添加var

    TZ=亚洲/加尔各答

    那么它将适用于印度时区。您可以从time-zone-list 中选择您的时区。

    【讨论】:

      【解决方案4】:

      Heroku 默认为 UTC。您可以通过将环境变量设置为 TZ=America/New_York 或其他方式来更改它,但我强烈建议您不要这样做。

      保持所有您的服务器内容(Heroku、CMS 等)在 UTC 时同步,并且在客户端显示时间时更改此设置是非常好的做法类似于 Luxon。

      让这些东西保持同步可以省去很多麻烦。

      【讨论】:

        猜你喜欢
        • 2011-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多