Rails DelayedJob Run_at时区差异

问题描述 投票:0回答:1

我正在使用Rails Delayed Job来排队要在特定时间运行的作业。我在IST时区中。延迟作业run_at也配置为使用IST TimeZone。

现在我想在IST下午5:00触发工作。我将“ 05:00 pm”作为字符串存储在表中,并在计划作业之前对其进行了解析。

所以,

Time.parse('05:00 pm')

返回

2020-05-29 17:00:00 UTC

如果我使用IST解析

 Time.parse('05:00 pm').in_time_zone('Chennai')
 => Fri, 29 May 2020 22:30:00 IST +05:30

但是我希望将05:00 pm解析为

  2020-05-29 11:30:00 UTC

以便我延迟的工作可以理解在IST下午5:00进行这项工作。

我可以手动减少5:30的时间入队,但这并不是我感觉的正确/优化方式。请提出我该怎么做?

ruby-on-rails timezone delayed-job enqueue
1个回答
0
投票

您可以执行类似ActiveSupport::TimeZone.new('Chennai').parse("5 pm").utc

或者理想情况下,您可以将时间存储为"17:00:00 +0530",因此很明显,您指的是IST中的时间。然后简单地Time.parse("17:00:00 +0530").utc也可以。

© www.soinside.com 2019 - 2024. All rights reserved.