Ios 如何检查电话时间格式是否设置为24小时?
我正在Swift 2中构建一个闹钟应用程序。我似乎找不到一个合适的方法来确定手机是否设置为24小时。 此外,我无法将模拟器更改为24小时工作,因此我甚至无法通过玩时间设置来测试一些替代方案。有什么想法吗?Ios 如何检查电话时间格式是否设置为24小时?,ios,swift,Ios,Swift,我正在Swift 2中构建一个闹钟应用程序。我似乎找不到一个合适的方法来确定手机是否设置为24小时。 此外,我无法将模拟器更改为24小时工作,因此我甚至无法通过玩时间设置来测试一些替代方案。有什么想法吗? 有一个适用于NSDateFormatter的模板说明符可以满足这一需要。此说明符是j,您可以通过NSDateFormatter的dateFormatFromTemplate:options:locale:方法获得它。如果区域设置为12H,格式化程序将返回hA,如果设置为24H,则返回HH,因此
- 有一个适用于
的模板说明符可以满足这一需要。此说明符是NSDateFormatter
,您可以通过j
的NSDateFormatter
方法获得它。如果区域设置为12H,格式化程序将返回dateFormatFromTemplate:options:locale:
,如果设置为24H,则返回hA
,因此您可以轻松检查输出字符串是否包含HH
。这取决于格式化程序的a
属性,您应将该属性设置为locale
,以获取系统的当前区域设置:NSLocale.currentLocale()
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
}
参考资料:-
- 在模拟器中,设置中没有12/24小时切换,就像在真实设备上一样。 改变这一点的技巧是编辑模拟器的日期样式,而不影响当前选择的区域或日历。您可以在设置>常规>语言和区域>高级中找到此选项