我正在尝试更改UIDatePicker的区域设置,如下所示:
picker.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
它正常工作,但在设置区域设置后,选择器不符合时间格式的系统设置。我的意思是24小时/(上午/下午)。我做错了什么?
答案 0 :(得分:1)
答案 1 :(得分:0)
你没有做错任何事。日期/时间格式由区域设置决定。 en_US使用12小时AM / PM格式:http://demo.icu-project.org/icu-bin/locexp?_=en_US
答案 2 :(得分:0)
如果您想支持用户所需的时间格式,则标记的答案并不完全正确。
如果将选择器区域设置设置为默认值(设备的区域设置),则选择器将使用该特定区域设置的12/24 hr格式。在美国,这将是12小时,而在英国,例如这将是24小时。
但是,如果用户手动将设备更改为12/24,则您的选择器将不会使用此样式。
如果您的选择器仅使用时间而非日期+时间,您可以使用以下两种方法解决此问题:
如果您正在使用日期+时间,那么您需要将区域设置设置为设备的区域设置,以便以正确的语言和格式获取日期,但这将忽略设备上设置的时间格式。 / p>