检测时间格式是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) } 
  • Xcode6:IBDesignable和IBInspectable与Objective-C
  • 在编译iPhone应用程序时,armv7比armv6有什么优势?
  • 我如何实现与ARC兼容的Objective-C单例?
  • 模态继续,导航栏消失
  • 如何检查一个string是否包含Objective-C中的另一个string?
  • 在Objective-C中,实例variables是否默认设置为零?
  • 读取和写入图像到SQLite数据库的iPhone使用
  • BOOL与iOS上的64位
  • UIView框架,边界和中心
  • 什么是最好的方式来洗牌NSMutableArray?
  • 通过应用程序组在应用程序之间传递和保持数据