是否可以使用本机将本地化的datetime字符串解析回正确的datetime
ruby或rails方法?
我在i18n中查找了我期望的位置,因为它包含格式和区域设置,但是我找不到它。
我有一个字符串:"za 18 mei 18:05",它是荷兰语(:nl),在英语中是"Sa 18 May 6:15PM"。日期格式是:"%a %d %b %H:%M"。我希望字符串解析回2012-05-08T18:12:00+01:00
有没有可能从这里得到约会时间我有一个用于荷兰语翻译的大型区域设置文件,我无法想象我无法使用它将格式解析回db格式

最佳答案

你需要稍微操纵一下你的日期字符串,因为它们不是英文的。
试试这个:

nl = "vri 18 mei 18:05"
dt = DateTime.strptime(nl.gsub(/vri|mei/, 'vri' => 'Fri', 'mei' => 'May'), "%a %d %b %H:%S")

在将字符串发送到strptime之前,如何将“za”替换为“sat”,将“mei”替换为“may”,这是一个示例方法。您可能需要想出一种更优雅的方法来替换原始字符串(例如编写助手)。
使用delocalizegem
或者,你可以试试宝石:
I18n.locale = :nl
Delocalize::LocalizedDateTimeParser.parse("Vri 18 mei 18:02", DateTime)

确保delocalize文件夹中有正确的“nl.yml”。
你可以从这里抓起:https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/nl.yml

10-08 03:09