Rails 时区 VS MySQL 时区
在我的 Rails (3.0) 应用程序中,我通过帮助器 time_zone_select() 使用时区。 它生成诸如“(GMT+01:00) Paris”之类的时区名称...
但这些名称与 MySQL 中的名称不同,其中相同的时区将是“Europe/Paris”。
如何将 Rails 时区转换为 MySql 时区?
棘手的部分是,由于多种原因,我必须使用默认的 Rails 帮助程序,并且在我的模型中我必须使用 MySQL 时区。 所以我不能在模型中使用 Ruby 时区,也不能使用 MySQL 时区列表来代替 Rails 帮助器...... 我真的需要一种从第一个转换到后者的方法。
有什么想法吗?
编辑:我目前正在尝试使用 ActiveSupport::TimeZone[(ruby_timezone)].tzinfo.name,有更好的方法吗?
In my Rails (3.0) application, I use timezones using the helper time_zone_select().
It generates timezone names like "(GMT+01:00) Paris"...
But these names are different from those in MySQL, where the same timezone would be "Europe/Paris".
How can I convert Rails timezones to MySql ones ?
The tricky part is that for several reasons I have to use the default Rails helper, and in my models I have to use the MySQL timezones.
So I can't use Ruby timezones in my models, and I can't use a list of MySQL timezones instead of the Rails helper...
I really need a way to convert from the first to the latter.
Any idea?
Edit: I'm currently trying to use ActiveSupport::TimeZone[(ruby_timezone)].tzinfo.name, is there a better way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,我终于找到了办法:
Romain 提示可能有一些 Rails 时区不受 MySQL 支持,所以我在控制台中测试了以下内容,答案是:它们都有效:)
如果 MySQL 不支持时区,则它会返回零。
我不知道是否有更好的方法,但至少它有效:)
Okay, I finally found a way :
Romain suggested there may be some Rails timezones not supported by MySQL, so I tested the following in the console, and the answer is: they all work :)
If a timezone was not supported by MySQL, it would have returned nil.
I don't know if there is a better way, but at least it works :)