Cy.*_*Cy. 1 ruby ruby-on-rails
我有以下日期字符串"1月31日星期一".
有没有办法将其转换为有效的Ruby格式化时间,以便我可以将其转换为其他东西?
如果用不同的语言,我怎么能解析它,例如西班牙语"Lunes 31 Enero"?
如果它是用不同的语言,即西班牙语"Lunes 31 Enero",我怎么能解析它呢?
通常情况下,我会说慢性宝石是灵活的日期时间解析的最佳选择.折腾不同的语言使它成为一个不同的问题,因为图书馆面向英语.
这意味着要回归Date.parse.放入IRB我有一个惊喜:
ruby-1.9.2-p136 :001 > require 'date'
=> true
ruby-1.9.2-p136 :002 > puts Date.parse('Lunes 31 Enero')
2011-01-31
Run Code Online (Sandbox Code Playgroud)
所以,Date.parse已经是西班牙语版本.
如果不是,则可以覆盖Date的Month和Day常量来帮助它:
require 'date'
Date::MONTHNAMES = [nil] + %w( Enero Febrero Marzo Abril Mayo Junio Julio Agosto Septiembre Octubre Noviembre Diciembre )
Date::DAYNAMES = %w( Lunes Martes Miércoles Jueves Viernes Sábado Domingo )
Date::ABBR_MONTHNAMES = [nil] + %w( Ene Feb Mar Abr May Jun Jul Ago Sep Oct Nov Dic )
Date::ABBR_DAYNAMES = %w( Lun Mar Mié Jue Vie Sáb Dom )
Run Code Online (Sandbox Code Playgroud)
我没有测试过,因为它已经可以在不搞乱的情况下工作,但对于其他不受支持的语言,改变值并看看会发生什么可能是一个值得的实验.