Non mi riferisco aIn Ruby o Rails, qual è il modo migliore per convertire Eastern Time in UTC?
myDateTime = DateTime.now
myDateTime.new_offset(Rational(0, 24))
o
Time.now.utc
Quello che ho è una data di testo è dato in Eastern Time.
Posso convertire quella data di testo in un DateTime. Chiamiamolo eastern_date_time
.
Ora, abbiamo una variabile contenente un DateTime, ma nulla sa che è orientale oltre a noi. Convertire noi stessi sarebbe abbastanza oneroso. Se la data in Ora legale (ora legale) (dall'8 marzo al 1 ° novembre di quest'anno), dovremmo aggiungere 4 ore alla nostra variante eastern_date_time per ottenere UTC, e se la data è in Ora standard (ST) aggiungere 5 ore alla nostra variabile eastern_date_time.
Come possiamo specificare che quello che abbiamo è un Eastern DateTime, e quindi convertirlo in UTC ... qualcosa che determinerà se la data è in DST/ST, e applicare correttamente le 4 o 5 ore?
Voglio convertire qualsiasi data in cui arrivo in UTC, per l'archiviazione nel mio database.
EDIT:
Utilizzando `in_time_zone', io sono in grado di convertire il mio tempo testo orientale UTC. Come posso raggiungere questo obiettivo? Ad esempio ...
text_time = "Nov 27, 2015 4:30 PM" #given as Eastern
myEasternDateTime = DateTime.parse text_time # => Fri, 27 Nov 2015 16:30:00 +0000
#now we need to specify that this myEasternDateTime is in fact eastern. However, it's our default UTC. If we use in_time_zone, it just converts the date at UTC to Eastern
myEasternDateTime.in_time_zone('Eastern Time (US & Canada)') # => Fri, 27 Nov 2015 11:30:00 EST -05:00
myEasternDateTime.utC# => Fri, 27 Nov 2015 16:30:00 +0000
Questo non è quello che vogliamo. Dobbiamo specificare che myEasterDateTime è in effetti est ... in modo che quando facciamo un myEasterDateTime.utc
alle 16:30:00 finiamo per ricevere 20:30:00.
Come posso realizzare questo?
dove è possibile ottenere un elenco di tutti i fusi orari quali "Stati Uniti/Europa orientale". C'è un comando? –
'ActiveSupport :: TimeZone.zones_map.values.collect {| z | z.name} ' – hd1
Non riesco a capire come convertire la Eastern Text Date in Eastern Time e quindi ottenere l'equivalente UTC con il metodo in_time_zone. Ho aggiunto un EDIT al post originale. –