如何检查手机时间格式是否设置为24小时?

时间:2016-01-22 21:08:46

标签: ios swift

我正在Swift 2中构建一个闹钟应用程序。我似乎无法找到一个合适的方法来确定手机是否设置为24小时。 此外,我无法将模拟器更改为24小时工作,因此我甚至无法通过播放时间设置来测试一些替代方案。有什么想法吗?

1 个答案:

答案 0 :(得分:38)

  • NSDateFormatter有一个符合此需求的模板说明符。此说明符为j,您可以通过dateFormatFromTemplate:options:locale:的{​​{1}}方法获取它。如果语言环境设置为12H,格式化程序将返回NSDateFormatter,如果设置为24H,则返回h a,因此您可以轻松检查输出字符串是否包含HH。这取决于格式化程序的a属性,您应将其设置为locale以获取系统的当前区域设置:

Swift 3

NSLocale.currentLocale()

Swift 2

    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
    }

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

  • 在模拟器中,您没有像在真实设备上那样在设置中进行12/24小时切换。 更改此功能的一个技巧是编辑模拟器的日期样式,而不会影响当前选定的区域或日历。您可以在“设置”中找到此选项>一般>语言和地区>高级。