Подтвердить что ты не робот

Хо, я проверяю, установлен ли формат времени телефона на 24 часа?

Я создаю приложение будильника в Swift 2. Я не могу найти подходящий способ узнать, установлен ли телефон на 24 часа или нет. Кроме того, я не могу изменить симулятор для работы с 24 часами, поэтому я не могу даже проверить некоторые альтернативы, играя с настройками времени. Любые идеи?

4b9b3361

Ответ 1

  • Для NSDateFormatter существует спецификатор шаблона для NSDateFormatter. Этот спецификатор j, и вы можете получить его через метод dateFormatFromTemplate:options:locale: NSDateFormatter. Форматир возвращает h a, если для locale установлено значение 12H, иначе HH, если оно установлено на 24H, поэтому вы можете легко проверить, содержит ли строка вывода a или нет. Это зависит от свойства locale форматирования, которое вы должны установить на NSLocale.currentLocale() для получения текущей локали системы:

Swift 3

    let locale = NSLocale.current
    let formatter : String = DateFormatter.dateFormat(fromTemplate: "j", options:0, locale:locale)!
    if formatter.contains("a") {
        //phone is set to 12 hours
    } else {
        //phone is set to 24 hours
    }

Swift 2

    let locale = NSLocale.currentLocale()
    let formatter : String = NSDateFormatter.dateFormatFromTemplate("j", options:0, locale:locale)!
    if formatter.containsString("a") {
        //phone is set to 12 hours
    } else {
        //phone is set to 24 hours
    }

Ссылка: Ссылка на класс NSDateFormatter - Unicode ts35-23 Дата Таблица полей полей

  • В симуляторе вы не можете переключать 12/24 часов в настройках, как на реальных устройствах. Трюк для его изменения заключается в редактировании стиля даты в Simulator, не затрагивая выбранный регион или календарь. Этот параметр можно найти в разделе "Настройки" > "Основные" > "Язык и регион" > "Дополнительно".