Necesito convertir un objeto Date en un objeto TimeWithZone que representa el comienzo de ese día en un huso horario dado.convertir el objeto Fecha a TimeWithZone
El siguiente enfoque funciona, pero parece demasiado complicado, ya que me requiere para convertir la fecha en una cadena:
?> 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
¿Hay una mejor manera de que me falta?
Editar: personas están sugiriendo variaciones de:
?> date.to_datetime.in_time_zone('Eastern Time (US & Canada)').beginning_of_day
=> Tue, 16 Feb 2010 00:00:00 EST -05:00
Como se puede ver, esto no es una conversión equivalente, ya que me deja en el inicio de Feb. de decima sexta EST, en lugar del inicio de 17 de febrero EST.
Parece que su solución podría ser el camino correcto a seguir. –
He editado mi respuesta para solucionar este problema. –
¡Date la solución! =) El tiempo con zonas horarias siempre es desordenado. – John