不同的日期格式和一个区域设置

时间:2019-02-16 08:38:48

标签: ruby-on-rails ruby internationalization rails-i18n

我使用I18n.t('date.formats.default')进行日期格式化。

问题在于,在不同的国家/地区,有不同的日期格式,但是一种英语语言环境

例如,美国的“ %m。%d。%Y ”和“ %d。%m。%Y ”的澳大利亚

我需要如何处理的想法。

2 个答案:

答案 0 :(得分:2)

虽然您可能只是对日期格式使用其他名称,但最简单的嵌入式解决方案是将所有个可能的变体存储在同一字符串中,并在检索时存储(假设国家/地区代码已知) :

{Symbol(enzyme.__root__): {Symbol(enzyme.__root__): [Circular], Symbol(enzyme.__unrendered__): <Foo....

后一种'date.formats.default': 'US[%m.%d.%Y],AU[%d.%m.%Y]' code = 'AU' format = I18n.t('date.formats.default') format[/(?<=#{code}\[).*?(?=\])/] || format #⇒ "%d.%m.%Y" 必须支持不带括号的普通格式。


如果您不喜欢正则表达式,请在其中存储包含哈希|| format的JSON,然后解析并检索值。

答案 1 :(得分:1)

我认为这是使用不同语言环境的更方便的方法。

例如en-AU.ymlen-US.ymlen-CA.yml等?特别是i18n支持这一点。

澳大利亚的时间格式也不同。

每次您都必须考虑每个国家的所有细微差别。

使用不同的语言环境可以简化此过程。