我需要将 Date 对象转换为 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 日开始。