Rails DelayedJob run_at Несоответствие часового пояса - PullRequest
0 голосов
/ 29 мая 2020

Я использую отложенное задание Rails для постановки заданий в очередь для запуска в указанное c время. Я нахожусь в часовом поясе IST. Отложенное задание run_at также настроено на использование часового пояса IST.

Теперь я хочу запустить задание в 17:00 IST. Я сохраняю «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

Но я хочу, чтобы 17:00 было анализируется как

  2020-05-29 11:30:00 UTC

, чтобы мое отложенное задание понимало, что оно запускается в 17:00 IST.

Я могу вручную сократить 5:30 часов и поставить в очередь, но я чувствую, что это не правильный / оптимизированный способ. Подскажите, пожалуйста, как мне это сделать?

1 Ответ

1 голос
/ 29 мая 2020

Вы можете сделать что-то вроде ActiveSupport::TimeZone.new('Chennai').parse("5 pm").utc

Или, в идеале, вы можете сохранить свое время как "17:00:00 +0530", так что ясно, что вы имеете в виду время в IST. Тогда просто Time.parse("17:00:00 +0530").utc тоже будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...