may2 = Date.new(2012,5,2)
midnight = Time.zone.local(may2.year,may2.month,may2.day).beginning_of_day
Ср, 02 мая 2012 г. 00:00:00 UTC +00: 00
midnight = Time.zone.local(may2.year,may2.month,may2.day).in_time_zone("Moscow").beginning_of_day
=> Ср, 02 мая 2012 г. 00:00:00 MSK +04: 00
midnight = Time.zone.local(may2.year,may2.month,may2.day).in_time_zone("Alaska").beginning_of_day
=> Вт, 01 мая 2012 г. 00:00:00 AKDT -08: 00
ВНИМАНИЕ, это НЕПРАВИЛЬНЫЙ ДЕНЬ.
Необходим способ построенияTimeWithZone в правильном часовом поясе.
Time.zone="Alaska"
midnight = Time.zone.local(may2.year,may2.month,may2.day)
Мне очень не нравится это, потому что, насколько я могу видеть, я только что изменил system понятие, в какой зоне я нахожусьИдея состоит в том, чтобы изменить поиск в моей базе данных в соответствии с зоной клиента ... Итак, я должен сохранить зону и восстановить ее:
foo = Time.zone; Time.zone="Alaska"; midnight = Time.zone.local(may2.year,may2.month,may2.day); Time.zone = foo
Похоже, я должен быть в состоянии вызвать TimeWithZone.new (), но я не понял, как.