Я делаю собственный TimePicker из UIPickerView. У меня он отлично работает, за исключением случаев, когда дело доходит до отображения часов. Я хочу, чтобы он функционировал точно так же, как UIDatePicker
, чтобы он соответствовал пользовательской настройке Locale
. Если выбран французский язык, время должно отображаться в 24-часовом формате. Если у них есть США, он должен отображаться в 12-часовом формате.
У меня есть массив hoursArray
, который идет от 0 до 23. Затем я запускаю этот код, чтобы преобразовать его в нужный формат. Однако он не хочет переходить на 24-часовой формат, если этот параметр установлен в разделе «Настройки» -> «Международный».
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[NSLocale currentLocale]];//[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
[dateFormatter setDateFormat:@"H"];
NSDate *tempDate = [dateFormatter dateFromString:[hoursArray objectAtIndex:row]];
[dateFormatter setDateFormat:@"h"];
return [dateFormatter stringFromDate:tempDate];
Я попытался изменить [dateFormatter setDateFormat:@"h"];
на [dateFormatter setDateFormat:@"H"];
, так как документ Apple говорит, что личные настройки пользователя переопределяют его, но, похоже, это не так.
Как заставить dateFormatter
правильно следовать языковым настройкам пользователя?