【发布时间】:2022-11-04 22:31:52
【问题描述】:
我需要将时区标识符转换为 Rails ActiveSupport 兼容的时区。我试图断言时间在给定区域内。 Ruby Time 类将区域指定为Time.now.zone => 'PDT' 和DateTime.now.zone => '+09:00',但是当我尝试将此标识符与TZInfo 或ActiveSupport 一起使用时,会出现Invalid Identifier: PDT 错误。
ActiveSupport::TimeZone.find_tzinfo(Time.now.zone) => Invalid Identifier: PDT
TZInfo::Timezone.get('PDT') => Invalid Identifier: PDT
Ruby Time 和 DateTime 区域标识符在它们自己和 Rails 助手之间不容易转换似乎很奇怪。我可以使用 utc_offset 方法,但这有点问题,因为我没有这种方式到命名区域的映射。
【问题讨论】:
-
请注意,PDT(太平洋夏令时间)的 UTC 偏移量为 -07:00,而不是 +09:00。
标签: ruby-on-rails ruby timezone