è possibile utilizzare il metodo Date.strptime
fornito nella libreria standard di Ruby:
require 'date'
string = "20120723"
date = Date.strptime(string,"%Y%m%d")
In alternativa, come suggerito nei commenti, è possibile utilizzare Date.parse
, perché le euristiche funzionano correttamente in questo caso:
require 'date'
string = "20120723"
date = Date.parse(string)
Entrambi aumenteranno un ArgumentError
se la data non è valida:
require 'date'
Date.strptime('2012-March', '%Y-%m')
#=> ArgumentError: invalid date
Date.parse('2012-Foo') # Note that '2012-March' would actually work here
#=> ArgumentError: invalid date
Se si desidera rappresentare anche ore, minuti e così via, è necessario guardare DateTime. DateTime fornisce anche un metodo parse
che funziona come il metodo di analisi su Date
. Lo stesso vale per strptime
.
Date.parse funziona anche per YYYYMMDD. Nessuna stringa di formato necessaria. – rrhartjr
E a proposito di parsing exception? – chrisapotek
C'è un modo per rilevare se una stringa genererà l'eccezione di analisi? – theUtherSide