2012-02-15 64 views
2

可能重复:
Add AM/PM to datepicker?的UIDatePicker 24小时

我的UIDatePicker。如果我选择地区俄罗斯我有24小时,如果我选择美国我有12小时上午/下午。 如何做到这一点,我可以选择任何地区,并有24小时?

datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 45, 325, 250)]; 
datePicker.datePickerMode = UIDatePickerModeTime; 
datePicker.hidden = YES; 
[datePicker addTarget:self action:@selector(changeDateInLabel:) forControlEvents:UIControlEventValueChanged]; 

- (void)changeDateInLabel:(id)sender{ 
    NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init]autorelease]; 
    [dateFormatter setDateStyle:NSDateFormatterNoStyle]; 
    [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; 
    datelabel.text=[dateFormatter stringFromDate:[datePicker date]]; 
} 

回答

1

它是因为区域设置(俄罗斯)默认为24小时。它是SDK的限制/问题。

最简单的解决:

NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; 
[datePicker setLocale:locale]; 
[locale release]; 
+0

为你写的,我没有带中的UIDatePicker了24小时我做的事情。 我在做NSLocale * locale = [[NSLocale alloc] initWithLocaleIdentifier:@“ru_RU”]; [datePicker setLocale:locale]; [locale release]; 它不起作用 – Pavel 2012-02-15 18:28:17

+0

@Pavel俄罗斯的语言环境标识符只是“ru”。 – 2016-04-05 09:43:09