преобразование Даты возражает против 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

Как Вы видите, это не эквивалентное преобразование, так как оно оставляет меня в начале 16-го февраля EST вместо запуска от 17-го февраля EST.

6
задан avaynshtok 25 March 2010 в 22:12
поделиться