Я использую datetimepicker и вам нужно сохранить строку datetime, полученную из params, в datetime в конкретном часовом поясе, зависящем от пользователя. Это позволит мне сохранить дату и время UTC для базы данных.Преобразование строки в datetime в определенный часовой пояс
params[:notify_at] #=> "2014-07-05 14:30:00"
user.time_zone #=> #<ActiveSupport::TimeZone:0x00000007535ac8 @name="Warsaw", @utc_offset=nil, @tzinfo=#<TZInfo::TimezoneProxy: Europe/Warsaw>, @current_period=nil>
И я хотел бы сделать что-то вроде:
date = params[:notify_at].to_datetime(user.time_zone) #=> Sat, 05 Jul 2014 12:30:00 +0000
(its 14:30 in user's localtime but 12:30 in UTC)
Уже пробовал это так, но это не то, что я чтобы сделать. to_datetime преобразует строку в UTC как это (так будет 14:30 в UTC в любом случае). После вызова in_time_zone («Варшава») он дает мне «Сб, 05 июл 2014 16:30:00 CEST +02: 00», что не так - мне нужно »Сб, 05 июл 2014 14:30:00 CEST +02: 00 '. – Jacka
Ах, я вижу. Обновлен мой ответ. Посмотрите, работает ли это. – pdobb
Да, это все, просто подумал о себе, но спасибо за правильный ответ :) – Jacka