1

我正在从 UIPickerView 制作自定义 TimePicker。我让它工作得很好,除了显示时间。我希望它像 the 一样运行,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"];因为 Apples 文档说用户的个人区域设置将覆盖它,但情况似乎并非如此。

如何dateFormatter正确遵循用户区域设置?

4

1 回答 1

0

就我而言,覆盖用户偏好效果很好,这对我来说是件坏事。!!!尝试将日期格式化程序的语言环境设置为

[dateFormatter setLocale:[NSLocale systemLocale]];

如果这不起作用,请尝试删除您设置区域设置的代码,因为 NSDateFormatter 会自动考虑用户设置。

于 2013-05-24T06:16:59.217 回答