我需要將Date對象轉換爲TimeWithZone對象,該對象表示給定時區中當天的開始。將日期對象轉換爲TimeWithZone
如下方法的工作原理,但似乎太令人費解,因爲它需要我將日期轉換爲字符串:
?> date = Date.parse("2010-02-17")
=> Wed, 17 Feb 2010
>> ActiveSupport::TimeZone['Eastern Time (US & Canada)'].parse(date.to_s)
=> Wed, 17 Feb 2010 00:00:00 EST -05:00
>> ActiveSupport::TimeZone['UTC'].parse(date.to_s)
=> Wed, 17 Feb 2010 00:00:00 UTC 00:00
有沒有更好的辦法,我失蹤?
編輯:的 人們提示的變化:
?> date.to_datetime.in_time_zone('Eastern Time (US & Canada)').beginning_of_day
=> Tue, 16 Feb 2010 00:00:00 EST -05:00
正如你所看到的,這不是一個等價轉換,因爲它讓我在2月16日美國東部時間的開始,而不是開始美國東部時間2月17日
它看起來像你的解決方案可能是去的正確方法。 – 2010-03-26 00:38:42
我編輯了我的回覆以解決此問題。 – 2010-03-26 10:28:47
給自己解決方案! =)時間與時區總是混亂。 – John 2010-11-17 19:31:37