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

Ran*_*Ran 22 ios swift

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

Nic*_*chi 46

  • 有一个NSDateFormatter适合这种需要的模板说明符.这个说明符是j你可以通过它的dateFormatFromTemplate:options:locale:方法得到它NSDateFormatter.h a如果语言环境设置为12H,HH则格式化程序返回,否则如果设置为24H,则可以轻松检查输出字符串是否包含a.这取决于locale您应该设置NSLocale.currentLocale()为获取系统当前语言环境的格式化程序的属性:

斯威夫特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
    }
Run Code Online (Sandbox Code Playgroud)

斯威夫特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
    }
Run Code Online (Sandbox Code Playgroud)

参考:NSDateFormatter类参考 - Unicode ts35 - 23日期字段符号表

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