Ho questo DateTime:Come posso rimuovere la zona da un valore DateTime?
=> Fri, 03 Feb 2012 11:52:42 -0500
Come posso rimuovere la zona (-0500) in Ruby? Voglio solo qualcosa di simile: ha
=> Fri, 03 Feb 2012 11:52:42
Ho questo DateTime:Come posso rimuovere la zona da un valore DateTime?
=> Fri, 03 Feb 2012 11:52:42 -0500
Come posso rimuovere la zona (-0500) in Ruby? Voglio solo qualcosa di simile: ha
=> Fri, 03 Feb 2012 11:52:42
Tempo sempre una zona (non ha alcun significato senza uno). Si può scegliere di ignorarlo quando si stampa utilizzando DateTime#strftime
:
now = DateTime.now
puts now
#=> 2012-02-03T10:01:24-07:00
puts now.strftime('%a, %d %b %Y %H:%M:%S')
#=> Fri, 03 Feb 2012 10:01:24
Vedi Time#strftime
per i codici arcani utilizzati per costruire un particolare formato.
In alternativa, è possibile impostare convert your DateTime to UTC per una rappresentazione più generale.
Quando tutto il resto fallisce
zoned_time = Time.now
unzoned_time = Time.new(zoned_time.strftime("%Y").to_i,zoned_time.strftime("%m").to_i,zoned_time.strftime("%d").to_i,zoned_time.strftime("%H").to_i,zoned_time.strftime("%M").to_i,zoned_time.strftime("%S").to_i,"+00:00")
Oltre alla risposta accettata è anche possibile aggiungere gli stessi parametri per strftime
DATE_FORMATS
un hash Rails permette di standardizzare formati di output nell'applicazione.
In config/initializers/datetime_formats.rb
:
Time::DATE_FORMATS[:nozone] = '%a, %d %b %Y %H:%M:%S'
Poi nel codice che si poteva fare:
Time.zone.now.to_s(:nozone)
si potrebbe anche rendere il default:
Time::DATE_FORMATS[:default] = '%a, %d %b %Y %H:%M:%S'
Time.zone.now.to_s
C'è anche un hash separata per le date:
Date::DATE_FORMATS[:default] = '%a, %d %b %Y'
Questa funzione esiste da anni ma sembra essere poco conosciuta.
Niente affatto! DateTime (che non è lo stesso di Time) memorizza solo le informazioni del calendario e non ha bisogno di puntare un punto specifico nel tempo. Pertanto, il fuso orario non specificato ha senso in alcuni casi. Ad esempio, http://tools.ietf.org/html/rfc5545#section-3.3.5 (modulo # 1). – skalee
@skalee Penso che potresti sbagliare la classe ['Date'] (http://ruby-doc.org/stdlib-2.3.1/libdoc/date/rdoc/Date.html) con il [' DateTime'] (http://ruby-doc.org/stdlib-2.3.1/libdoc/date/rdoc/DateTime.html) classe. Il primo ha solo informazioni sul calendario, quest'ultimo include il tempo (che deve essere associato a un fuso orario). Considera l'output di 'DateTime.new (2016,5,5) .to_s # =>" 2016-05-05T00: 00: 00 + 00: 00 "', dove "+00: 00" alla fine indica che questo è mezzanotte _ ** in GMT ** _ (ad es. a Londra), non a mezzanotte a Denver, CO. – Phrogz