gpt4 book ai didi

mysql - Rails 时区 VS MySQL 时区

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

在我的 Rails (3.0) 应用程序中,我使用助手 time_zone_select() 来使用时区。它生成时区名称,如“(GMT+01:00) Paris”...

但这些名称与 MySQL 中的名称不同,在 MySQL 中,相同的时区将是“欧洲/巴黎”。

如何将 Rails 时区转换为 MySql 时区?

棘手的部分是,出于多种原因,我必须使用默认的 Rails 助手,并且在我的模型中,我必须使用 MySQL 时区。所以我不能在我的模型中使用 Ruby 时区,我不能使用 MySQL 时区列表而不是 Rails 帮助程序......我真的需要一种方法将第一个转换为第二个。

有什么想法吗?

编辑:我目前正在尝试使用 ActiveSupport::TimeZone[(ruby_timezone)].tzinfo.name,有没有更好的方法?

最佳答案

好吧,我终于找到办法了:

ActiveSupport::TimeZone[ruby_timezone].tzinfo.name

Romain 建议可能有一些 MySQL 不支持的 Rails 时区,所以我在控制台中测试了以下内容,答案是:它们都可以工作:)

ActiveSupport::TimeZone.all.each do |ruby_timezone|
mysql_timezone = ActiveSupport::TimeZone[ruby_timezone.name].tzinfo.name
puts ActiveRecord::Base.connection.execute("select convert_tz('2011-01-01 00:00:00', 'UTC', '#{mysql_timezone}')").first
end
end

如果 MySQL 不支持时区,它将返回 nil。

我不知道有没有更好的方法,但至少它有效:)

关于mysql - Rails 时区 VS MySQL 时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7633922/

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