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



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

  • 用户有配置文件,他们可以设置他们的当地时区(+2:00等)。
  • 用户动作被添加到作业队列(mongo collection)

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

做这件事的最好方法是什么?

我现在有:

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

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

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

通过用户的时区解析"scoping":

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

最新更新