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月17日ESTの開始ではなく、2月16日ESTの開始時に私を残すため、同等の変換ではありません。