如何在Ruby中为每个用户保存的项目调整时区

时间:2011-10-14 14:07:31

标签: ruby localization timezone

我有一个具有以下基本工作流程的应用程序:

  • 用户可以在配置文件中设置本地时区(+2:00等)。
  • 将用户操作添加到作业队列(mongo集合)

首先,我需要在 GMT时间 - / +用户时区偏移中将项目保存到队列中。

这样做最好的方法是什么?

我目前有:

DateTime.parse("26 October 2011 14:45") + Rational(user.timezone.to_f, 24)

我怀疑上述代码并不完全可靠。

还有一个每小时运行并处理作业的cron作业 - 我需要在队列中查询需要在这个小时处理的项目(分钟并不重要)

1 个答案:

答案 0 :(得分:1)

通过用户的时区解析“范围”:

>> ActiveSupport::TimeZone.new('Madrid').parse("26 October 2011 14:45")
=> Wed, 26 Oct 2011 14:45:00 CEST +02:00