gpt4 book ai didi

ruby-on-rails - Rails Time.zone 解析没有按预期工作

转载 作者:数据小太阳 更新时间:2023-10-29 08:13:19 26 4
gpt4 key购买 nike

我在测试部署到不同时区(PDT 和 CDT)的两个不同登台服务器的 Rails 应用程序时遇到了这个问题。两台服务器都有使用默认 UTC config.time_zone 的 rails 。除了时区配置不同之外,两台服务器的时钟设置都正确。

以下是我在 Rails 控制台中看到的内容:

在系统时区为CDT的服务器上,

Time.zone.parse("Mon May 28 2012 00:00:00 GMT-0700 (PDT)")
=> Mon, 28 May 2012 05:00:00 UTC +00:00

在系统时区为PDT的服务器上,

Time.zone.parse("Mon May 28 2012 00:00:00 GMT-0700 (PDT)")
=> Mon, 28 May 2012 07:00:00 UTC +00:00

字符串 Mon May 28 2012 00:00:00 GMT-0700 (PDT) 是客户端发送的任意日期时间值。这是使用通过 rails params 集合传入的 javascript Date 对象时的常见情况。

为什么这两个结果 Time.zone.parse(identical_date_time_string) 不同?

如果我在两个系统上运行以下命令,结果显示正确:

"Mon May 28 2012 00:00:00 GMT-0700 (PDT)".to_time
=> 2012-05-28 07:00:00 UTC

我在 ubuntu 上使用 ruby​​ 1.9.3-p125 运行 rails 3.2.3。

最佳答案

ActiveSupportTimeZone.parse 不会尝试从给定字符串中提取时区信息。它只是提取日期和时间并将其转换为具有给定(本地)时区的 TimeWithZone。

str.to_time 会注意到“GMT-0700”行,但会生成没有时区的时间。

您可以通过提取“GMT.....”部分并将其转换为 UTC 偏移量来捏造它,该偏移量接近但不完全是时区。

关于ruby-on-rails - Rails Time.zone 解析没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10056025/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com