Ho bisogno di convertire un oggetto Date in un oggetto che rappresenta TimeWithZone l'inizio di quel giorno in una determinata fascia oraria.conversione Data oggetto TimeWithZone
L'approccio seguito funziona, ma sembra troppo complicata in quanto mi obbliga a convertire la data in una stringa:
?> 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
Esiste un modo migliore che mi manca?
Modifica: persone sono suggerendo variazioni di:
?> date.to_datetime.in_time_zone('Eastern Time (US & Canada)').beginning_of_day
=> Tue, 16 Feb 2010 00:00:00 EST -05:00
Come si può vedere, non si tratta di una conversione equivalente dal momento che mi lascia all'inizio del 16 febbraio EST, invece l'inizio di 17 febbraio EST.
Sembra che la soluzione potrebbe essere il modo giusto per andare. –
Ho modificato la mia risposta per risolvere questo problema. –
Datti la soluzione! =) Il tempo con i fusi orari è sempre disordinato. – John