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