Можете ли вы переопределить NSDateFormatter 12 против 24-часового формата времени, не используя пользовательский формат даты
Я хочу преобразовать дату в виде отображаемой строки во временном поясе пользователя, но я хочу использовать 24-часовой формат времени, а не 12-часовой формат времени.
Я знаю, что могу сделать это, явно установив dateFormat
string, но при этом теряется преимущество, позволяющее системе генерировать строки, которые соответствуют настройкам локали пользователя.
NSNumberFormatter
имеет настройки, которые позволяют вам изменять аспекты преобразования, такие как десятичный разделитель.
Есть ли настройка для NSDateFormatter
что позволит мне переключаться между 12 и 24-часовым форматом, не прибегая к полностью пользовательскому формату?
1 ответ
DateFormatter
имеет dateFormat(fromTemplate:options:locale:)
метод. Используйте это, чтобы получить правильный 24-часовой формат в зависимости от локали пользователя.
let fmt = DateFormatter.dateFormat(fromTemplate: "Hms", options: 0, locale: Locale.current)
Хотя это, кажется, вернуться HH:mm:ss
для большинства языков. Только 85 из 739 доступных локалей возвращают что-то кроме HH:mm:ss
,