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