【问题标题】:iPhone iOS 4 UITimePicker force 24 hour viewiPhone iOS 4 UITimePicker 强制 24 小时视图
【发布时间】:2011-11-29 10:57:55
【问题描述】:

我的应用中有一个 UITimePicker,我想用它来选择用户事件发生后的特定小时数和分钟数。 (例如晚上 7 点后 3 小时 15 分钟)这就是为什么我想以 24 小时格式显示日期,否则用户可能会感到困惑。

有没有办法强制时间选择器显示 24 小时视图,而与区域设置的时钟格式无关?还是我只是选择其他语言环境?

UIDatePicker *timePicker;
NSDateFormatter *timePickerFormatter;

  [self.view addSubview:timePicker];
    float tempHeight = timePicker.frame.size.height;
    timePicker.frame = CGRectMake(0,150 ,self.view.frame.size.width , tempHeight);
    timePicker.hidden = YES;
    timePickerFormatter= [[NSDateFormatter alloc]init ];
    [timePickerFormatter setDateFormat:@"HH:mm"]; //formats date for processing

谢谢!

更新:我找到了这样的答案:

timepicker.datePickerMode = UIDatePickerModeCountDownTimer;

通过显示 0 到 23 小时和 0 到 59 分钟,这有效地完成了我想要做的事情,无需进一步定制!很抱歉询问 24 小时格式,这是我移植的 Android 应用程序正在使用的!

【问题讨论】:

标签: iphone ios4 datetimepicker


【解决方案1】:

我使用的可视化:

[self.datePickerView setLocale:[NSLocale localeWithLocaleIdentifier:@"ru_RU"]];

您可以使用自己的语言环境。

对于我使用的 NSDateFormatter:

[_dateFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];

它不再破坏我的应用程序。

【讨论】:

    【解决方案2】:

    您是否尝试使用UIDatePickercalendarlocale 属性?

    这应该是您问题的解决方案,因为正如文档所解释的那样(阅读UIDatePicker class reference):

    UIDatePickerModeTime

    日期选择器显示小时、分钟和(可选)AM/PM 名称。 显示的确切项目及其顺序取决于区域设置。这种模式的一个例子是 [ 6 | 53 |下午]。

    [EDIT] 经过进一步调查,似乎 NSLocale 无法覆盖 AM/PM 设置……(我通过……简单地搜索获得了该信息)here在 Stackoverflow 中!而且您的问题之前已经被问过并回答了很多次)

    【讨论】:

    • 我还尝试将语言环境设置为欧洲语言环境,例如德国,但它不起作用。这就是为什么我需要将日期选择器“强制”/欺骗为 24 小时格式,无论位置如何。我是否需要继承 DatePicker 并尝试以这种方式自定义它? PS。我会先尝试更改日历的时区/语言环境,看看是否有帮助
    • 您没有在问题中提到这一点,所以我无法猜测。无论如何,搜索 StackOverflow 有很多相关的问题,而且您的问题也已经多次回答:看来您不能强制使用 UIDatePicker 的 12/24 小时格式,而必须简单地使用自定义的 UIPickerView (无论如何定制并不复杂)
    • 我发现时间选择器可以自定义倒数计时器样式(由计时器应用程序使用)。这可能适用于我的应用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多