Detect if time format is in 12hr or 24hr format

后端 未结 6 1372
执笔经年
执笔经年 2020-12-08 04:18

Is there any way to detect if the current device of the app uses 12h our 24h format, so that I can use one NSDateFormatter for 12h and one for 24h depending on the users lan

6条回答
  •  情话喂你
    2020-12-08 04:56

    I figured it out, its pretty easy. I just added this code to 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"));
    

    And it perfectly returns YES or NO depending on the locale.

提交回复
热议问题