检测时间格式是12小时制还是24小时制

有什么办法来检测应用程序的当前设备是否使用12小时我们的24小时格式,以便我可以使用一个NSDateFormatter 12小时和一个24小时取决于用户语言/位置设置? 就像UIDatePicker检测并显示AM / PMselect器,如果它是12小时格式。

4 Solutions collect form web for “检测时间格式是12小时制还是24小时制”

我明白了,这很容易。 我只是把这个代码添加到viewDidLoad

 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setLocale:[NSLocale currentLocale]]; [formatter setDateStyle:NSDateFormatterNoStyle]; [formatter setTimeStyle:NSDateFormatterShortStyle]; NSString *dateString = [formatter stringFromDate:[NSDate date]]; NSRange amRange = [dateString rangeOfString:[formatter AMSymbol]]; NSRange pmRange = [dateString rangeOfString:[formatter PMSymbol]]; BOOL is24h = (amRange.location == NSNotFound && pmRange.location == NSNotFound); [formatter release]; NSLog(@"%@\n",(is24h ? @"YES" : @"NO")); 

而且它完全返回YESNO具体取决于语言环境。

这里是一个Swift 3.0更新版本

 func using12hClockFormat() -> Bool { let formatter = DateFormatter() formatter.locale = Locale.current formatter.dateStyle = .none formatter.timeStyle = .short let dateString = formatter.string(from: Date()) let amRange = dateString.range(of: formatter.amSymbol) let pmRange = dateString.range(of: formatter.pmSymbol) return !(pmRange == nil && amRange == nil) } 

这是为我工作的快速解决scheme,以上两者都没有。

 让dateString:String = DateFormatter.dateFormat(fromTemplate:“j”,options:0,locale:Locale.current)! 

if(dateString.contains("a")){ // 12 h format return true }else{ // 24 h format return false }

这里是Swift版本:

 func using12hClockFormat() -> Bool { let formatter = NSDateFormatter() formatter.locale = NSLocale.currentLocale() formatter.dateStyle = NSDateFormatterStyle.NoStyle formatter.timeStyle = NSDateFormatterStyle.ShortStyle let dateString = formatter.stringFromDate(NSDate()) let amRange = dateString.rangeOfString(formatter.AMSymbol) let pmRange = dateString.rangeOfString(formatter.PMSymbol) return !(pmRange == nil && amRange == nil) } 
  • 如何使图像和标签自定义UIBarButtonItem?
  • 如何在Objective-C中投射一个对象
  • 符号(S)未findbuild筑i386
  • NSDictionary价值/对象的关键?
  • 编译错误:switch,“预期expression式之前”
  • 使用`textField:shouldChangeCharactersInRange:`,我如何获取包含当前input字符的文本?
  • 如何以编程方式调用View Controller?
  • 如何更改UISegmentedControl的字体颜色
  • 我应该在接口中声明variables还是在objective-c arc中使用属性?
  • NS以重写描述方法logging对象的内存地址
  • 如何隐藏UINavigationBar 1px的底线