rails parse invalid from ruby-on-rails ruby datetime date

ruby on rails - parse - Conversión de Ruby String to Date



invalid date rails (4)

Me enfrento con un problema en Ruby on Rails. Estoy buscando convertir una cadena de formato Tue, 10 Aug 2010 01:20:19 -0400 (EDT) a un objeto de fecha.

De todos modos, podría hacer esto.

Esto es lo que miré e intenté en lo siguiente sin suerte:

  1. Date.strptime(updated,"%a, %d %m %Y %H:%M:%S %Z")
  2. Analizador crónico
  3. Ruby: cadena de conversión hasta la fecha
  4. Fecha de análisis del texto usando Ruby

Por favor, me ayudas con ésto.


¿Qué pasa con el método Date.parse ?

str = "Tue, 10 Aug 2010 01:20:19 -0400 (EDT)" date = Date.parse str => #<Date: 4910837/2,0,2299161> puts date 2010-08-10

Parece funcionar.

El único problema aquí es la zona horaria. Si desea una fecha en la zona horaria UTC, entonces es mejor usar el objeto Time , supongamos que tenemos una cadena:

str = "Tue, 10 Aug 2010 01:20:19 +0400" puts Date.parse str 2010-08-10 puts Date.parse(Time.parse(str).utc.to_s) 2010-08-09

No pude encontrar un método más simple para convertir el Time hasta la Date .


Puede intentar https://rubygems.org/gems/dates_from_string :

Encuentra la fecha en la estructura:

text = "get car from repair 2015-02-02 23:00:10" dates_from_string = DatesFromString.new dates_from_string.find_date(text) => ["2015-02-02 23:00:10"]


Date.strptime(updated,"%a, %d %m %Y %H:%M:%S %Z")

Debiera ser:

Date.strptime(updated, ''%a, %d %b %Y %H:%M:%S %Z'')


str = "Tue, 10 Aug 2010 01:20:19 -0400 (EDT)" str.to_date => Tue, 10 Aug 2010