2

ネイティブのRubyまたはRailsメソッドを使用して、ローカライズされたDateTime文字列を解析して適切なDateTimeに戻すことは可能ですか?

フォーマットとロケールを保持しているので、これが期待されるi18nを調べましたが、見つかりませんでした。

私は文字列を持っています:"za 18 mei 18:05"これはオランダ語(:nl)で、英語では次のようになり"Sa 18 May 6:15PM"ます。日付形式は次のとおり"%a %d %b %H:%M"です。文字列を解析してに戻したい2012-05-08T18:12:00+01:00

これからDateTimeを取得する方法はありますか?オランダ語の翻訳用の大きなロケールファイルがあり、これを使用してフォーマットを解析してdbフォーマットに戻すことができないとは想像できません。

4

2 に答える 2

2

日付文字列は英語ではないため、少し操作する必要があります。

これを試して:

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

これは、文字列を に送信する前に、「za」を「Sat」に、「mei」を「May」に置き換える方法の例strptimeです。おそらく、元の文字列を置き換えるためのより洗練されたアプローチを考え出す必要があります (たとえば、ヘルパーを作成します)。

delocalize宝石の使用

または、 gem を試すこともできますdelocalize:

I18n.locale = :nl
Delocalize::LocalizedDateTimeParser.parse("Vri 18 mei 18:02", DateTime)

フォルダーに正しい「nl.yml」があることを確認してconfig/localesください。ここから取得できます: https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/nl.yml

于 2012-12-08T08:54:52.667 に答える
0

https://github.com/carlosantoniodasilva/i18n_alchemyもご覧ください。これは同様の方法で非ローカライズを行いますが、そのスコープはモデルに限定されているため、ビュー クラスを混乱させることはありません。

于 2014-10-29T15:02:14.737 に答える