Haga que Rails ignore el horario de verano al mostrar una fecha
Tengo una fecha almacenada en UTC en mi aplicación Rails y estoy tratando de mostrarla a un usuario que tiene"Eastern Time (US & Canada)"
como su zona horaria. El problema es que los rieles siguen convirtiéndolo aHora de verano del este (EDT) así que la medianoche se muestra como8am cuando debería ser7am. ¿Hay alguna forma de evitar la conversión 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
ActualizarFinalmente fui con un giro en el enfoque de @zeantsoi. No soy un gran fan de agregar demasiados ayudantes de rieles, así que extendí el soporte activoTimeWithZone
clase.
class ActiveSupport::TimeWithZone
def no_dst
if self.dst?
self - 1.hour
else
self
end
end
end
Ahora puedo hacertime.in_time_zone("Eastern Time (US & Canada)").no_dst