Ustaw Railsy na ignorowanie czasu letniego podczas wyświetlania daty
Mam datę zapisaną w UTC w mojej aplikacji Rails i próbuję wyświetlić ją użytkownikowi, który ją ma"Eastern Time (US & Canada)"
jako strefę czasową. Problem polega na tym, że szyny wciąż go konwertująCzas wschodni (EDT) więc północ jest wyświetlana jako8 rano kiedy powinno być7 rano. Czy mimo to chcesz zapobiec konwersji DST?
>> time = DateTime.parse("2013-08-26T00:00:00Z")
=> Mon, 26 Aug 2013 00:00:00 +0000
>> time.in_time_zone("Eastern Time (US & Canada)")
=> Sun, 25 Aug 2013 20:00:00 EDT -04:00
AktualizacjaW końcu poszedłem z niespodzianką w podejściu @zeantsoi. Nie jestem wielkim fanem dodawania zbyt wielu pomocników szyny, więc rozszerzyłem aktywne wsparcieTimeWithZone
klasa.
class ActiveSupport::TimeWithZone
def no_dst
if self.dst?
self - 1.hour
else
self
end
end
end
Teraz mogę to zrobićtime.in_time_zone("Eastern Time (US & Canada)").no_dst