首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails时区与MySQL时区

Rails时区与MySQL时区
EN

Stack Overflow用户
提问于 2011-10-03 10:41:05
回答 1查看 1.1K关注 0票数 2

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

但这些名字与MySQL不同,后者的时区将是“欧洲/巴黎”。

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

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

有什么想法吗?

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

EN

回答 1

Stack Overflow用户

发布于 2011-10-04 08:52:20

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

代码语言:javascript
运行
复制
ActiveSupport::TimeZone[ruby_timezone].tzinfo.name

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

代码语言:javascript
运行
复制
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不支持时区,则会返回零。

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7633922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档