检测时间格式是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) } 
  • 如何摆脱Xcode中的“未使用variables”警告?
  • 处理由iOS中的地址簿API中的链接卡造成的重复联系人
  • Objective-C中的stringreplace
  • 如何找出谁叫一个方法?
  • iOS6:supportedInterfaceOrientations不起作用(被调用但界面仍在旋转)
  • Swift编译器错误:“框架模块内部非模块化头”
  • 如何添加对UITextField返回键的操作?
  • 如何使用单个故事板uiviewcontroller多个子类