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:
-
Date.strptime(updated,"%a, %d %m %Y %H:%M:%S %Z")
- Analizador crónico
- Ruby: cadena de conversión hasta la fecha
- 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