我使用的是datetimepicker,並且需要將從params獲取的字符串datetime保存到特定的用戶相關時區中的日期時間。它將允許我將正確的UTC日期時間保存到數據庫中。將字符串轉換爲特定時區的日期時間
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)。在調用in_time_zone('華沙')後,它給了我'週六,2014年7月5日16:30:00 CEST +02:00'這是錯誤的 - 我需要'星期六,2014年7月5日14:30:00 CEST +02:00 '。 – Jacka
啊,我明白了。更新了我的答案。看看是否有效。 – pdobb
是的,就是這樣,只是想出了自己,但謝謝你的正確答案:) – Jacka