How do I check whether a phone time format is set to 24 hours? [duplicate] How do I check whether a phone time format is set to 24 hours? [duplicate] ios ios

How do I check whether a phone time format is set to 24 hours? [duplicate]


  • There is a template specifier for NSDateFormatter that fits this need. This specifier is j and you can get it through the dateFormatFromTemplate:options:locale: method of NSDateFormatter. The formatter returns h a if the locale is set to 12H, else HH if it's set to 24H, so you can easily check if the output string contains a or not. This relies on the locale property of the formatter that you should set to NSLocale.currentLocale() for getting the system's current locale:

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    }

Reference: NSDateFormatter Class Reference - Unicode ts35-23 Date Field Symbol Table

  • In the simulator, you don't have the 12/24 hours toggle in the settings like it happens on the real devices.A trick for changing this is by editing the date style of the Simulator, without affecting the currently selected region or calendar. You can find this option in Settings > General > Language and Region > Advanced.