Sto tentando di analizzare le date esportate da un CMS. Sfortunatamente con un set locale svedese. I nomi dei mesi sono abbreviati in tre caratteri che fanno la differenza quando si tratta dei mesi di maggio e ottobre ("maj" vs. "May" e, "okt" vs. "Oct").Come analizzare le date non inglesi con DateTime strptime in Ruby?
mi aspetterei di usare DateTime.strptime con la corretta localizzazione impostare per risolvere questo problema, in questo modo:
require 'locale'
Locale.default = "sv_SE"
require 'date'
DateTime.strptime("10 okt 2009 04:32",'%d %b %Y %H:%M')
La data è però ancora analizzato come sarebbe con i nomi dei mesi abbreviati in inglese:
ArgumentError: invalid date
from lib/ruby/1.9.1/date.rb:1691:in `new_by_frags'
from lib/ruby/1.9.1/date.rb:1716:in `strptime'
from (irb):9
from bin/irb:16:in `<main>'
Question 4339399 tocchi sullo stesso argomento e collegamenti a una soluzione complessa per il fissaggio di questo.
C'è una soluzione più elegante a questo? E 'anche considerato un bug in Ruby?
Sembra una soluzione ragionevole per il tempo. Avevo qualcosa del genere ma non sapevo che potevi usare'gsub' in quel modo. Più leggibile della mia catena di due "tribù" una dopo l'altra. – moonhouse
quindi non c'è modo di farlo con l10n? solo gsub soggetti a errori? – nurettin
Il 'gsub' per questo caso specifico non sembra particolarmente soggetto a errori. A seconda del tuo caso d'uso, potrebbe essere comunque. –