gpt4 book ai didi

ruby-on-rails - 在 Rails 或一般的 Ruby 中,我如何知道日期时间字符串是否对应于具有 DST 或不具有 DST 的日期时间?

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

我的应用程序在“雅典”(希腊)时区运行。标准偏移量是“+02:00”。然而,在夏季,雅典有 DST,这意味着偏移量在一年中的特定时间段变为“+03:00”。这些时期不是标准的。他们改变了。

给定一个字符串“20YY-MM-DDTHH:MI:SS”,表示“雅典”时区的日期时间,我希望能够使用“+02:00”将其转换为正确的 DateTime 实例或“+03:00”偏移量。

因此,例如,字符串“2013-04-11T20:28:07”实际上是“2013-04-11T20:28:07+03:00”,而字符串“2013-11-11T20:28” :07"实际上是 "2013-11-11T20:28:07+02:00"。

如果时区和日期时间规范缺少实际偏移量,我是否有任何 Rails/Ruby 代码可以帮助我找到正确的偏移量?

最佳答案

我认为您需要 TZInfo库(gem here)。该库使用时区的名称,如 IANA TimeZone database 中指定的那样.该数据库包含指定每个时区偏移量的规则,由名称指定。只要规则发生变化,数据库就会定期更新。

使用简单的时区偏移量来确定时区是不够的。只需通过一项更改基线偏移量、日期甚至从夏令时切换到冬令时的时间的法律,即可更改偏移量。例如,莫斯科在过去 4 年中至少更改了两次时区。

如果您使用 Rails,更好的解决方案是使用 in_time_zone,正如 Stefan 所说

关于ruby-on-rails - 在 Rails 或一般的 Ruby 中,我如何知道日期时间字符串是否对应于具有 DST 或不具有 DST 的日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19729670/

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