mysql - 如何将 Time.zone 设置为 UTC 并保持这种状态?

标签 mysql ruby-on-rails ruby time

我有一个基于 Ruby 1.9.2 的 Rails 3 应用程序,用户可以在其中输入工作时间并将它们存储在 MySQL 数据库中。但是,当用户执行此操作时,输入的时间“8:00 AM”将在数据库中存储为下午 3 点。无论时区如何,我都希望在他们输入时将其存储。我认为最好的方法是将所有内容都设置为 UTC 并让它忽略我的时区(亚利桑那州),但 Rails 似乎忽略了我的设置。示例:

Time.zone = 'UTC'

mon_open_date = Time.parse(params[:venue][:mon_open_at]) rescue nil

# => 2011-04-27 08:00:00 -0700

MySQL 中的结果:

+-------------+
| mon_open_at |
+-------------+
| 15:00:00    |
+-------------+
1 row in set (0.00 sec)

有什么想法吗?

最佳答案

Time.parse 总是将字符串解析为您计算机的本地时区。您需要使用 Time.zone.parse 才能将其解析为指定的时区,UTC。

关于mysql - 如何将 Time.zone 设置为 UTC 并保持这种状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5802913/

相关文章:

java - hibernate 连接期间出错

javascript - Rails AJAX 反馈,尤其是错误反馈

ruby - 谁在 `defer` 中定义了 `deploy.rb` ?

ruby - Ruby 中的单个符号到多个标识符

ruby-on-rails - has_many 关系的动态类名

mysql - 将 where 子句移至 join 子句是否会提高性能?

mysql - 总结一周的统计记录

mysql - XML UTF-8编码,来自MySQL数据库

ruby-on-rails - Rails & Capistrano 3 - 尝试用户生产数据库的登台服务器

ruby-on-rails - Rails 和 ruby​​ 客户端之间的长轮询/推送事件