gpt4 book ai didi

ruby-on-rails - 根据当前语言环境在 Rails 中显示小时格式(上午/下午或下午)

转载 作者:行者123 更新时间:2023-12-05 08:44:31 29 4
gpt4 key购买 nike

我刚刚意识到 Rails(目前为 3.1.3)中的 l(或本地化)方法似乎无法根据当前设置的语言环境管理时钟格式。我只是假设是这种情况,并没有专门对此进行测试...我刚刚验证了日期已根据语言环境重新格式化。

我的 Rails 控制台中的以下所有内容均采用 24 小时制。两种语言环境之间唯一明显的区别是月份名称的大写。

I18n.l Time.now, :format => :short,  :locale => :"en"
I18n.l Time.now + 12.hours, :format => :short, :locale => :"en"
I18n.l Time.now, :format => :short, :locale => :"sv-SE"
I18n.l Time.now + 12.hours, :format => :short, :locale => :"sv-SE"

现在,这是为什么呢?这不是本地化时间的一部分吗?

我发现 AM/PM 的唯一手动干预是为我可以“手动”要求 12 小时制的表单生成选择。一个奇怪的选择,因为在我看来,这就像我想要依赖语言环境的那种东西。

看看 Mac OS,我确实可以分别为格式首选项选择语言和区域设置,但这就是我们使用 en-US、en-GB、sv-SE 命名的原因,对吗?表示语言-国家。我可以通过适合瑞典的格式将 en-SE 文件添加到我的应用程序,其中包含英语翻译。

我假设并非所有美国开发人员都会进入并编辑英语的默认语言环境文件(en-US 看起来与 en btw 相同)以获得适合美国用户的 12 小时制。所以,请随时向我展示我有多愚蠢。我完全希望这个问题能够解决一些非常非常基本的问题。

简而言之。我错了什么?我如何“修复”我的时间戳? :)

最佳答案

如果你直接用%I.%m %p指定你可以得到一个12小时制的时钟:%p表示指示器(“AM”或“PM”),%I表示小时12 小时制 (01..12) 的一天

>> I18n.l Time.now, :format => "%I.%m %p",  :locale => :"en"
=> "01.12 pm"
>> I18n.l Time.now + 12.hours, :format => "%I.%m %p", :locale => :"en"
=> "01.12 am"

这适用于 Rails 3.1

关于ruby-on-rails - 根据当前语言环境在 Rails 中显示小时格式(上午/下午或下午),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8532121/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com