Я только что понял, что метод l (или локализация) в Rails (на данный момент 3.1.3), по-видимому, не управляет основанием формата часов в текущей установленной локали.Я только предположил, что это был случай, и не проверял это специально ... Я только что проверил, что даты были переформатированы в соответствии с локалью.
Я получаю 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-часовые часы, подходящие для пользователей из США.Так что не стесняйтесь показать мне, насколько я глуп.Я полностью ожидаю, что эта проблема обязательно станет чем-то действительно базовым.
Короче говоря.Что я делаю не так?И как мне «исправить» мои метки времени?:)