3

很抱歉在这里提出我的第一个问题有点简单——我花了一天时间阅读 NSLocale 和 NSCalendar 类描述,但我看不出这是否可能。

我在 UIDatePickerModeDateAndTime 模式下有一个 UIDatePicker。它当前根据用户的区域设置显示日期和时间,这是默认行为。

我希望能够提供以 12 小时或 24 小时时间格式显示 UIDatePicker 的选项。检测用户当前使用的时间格式不是问题,但我不清楚如何仅更改 UIDatePicker 的时间格式而不完全丢弃用户的语言环境设置(因为选择器还显示本地化的天数周和月)。UIDatePicker 支持设置它的语言环境和设置它的日历。

所以,问题一是我是否应该尝试通过 NSLocale 或 NSCalendar 来做这件事,问题二是是否有人可以推荐一种方法来隔离时间格式而不丢弃用户的其余区域设置。

感谢您的任何建议。

4

3 回答 3

1

这不是您要寻找的答案,但在 Cocoa 中,您可以使用 setFormatter 创建一个 NSDateFormatter 并将其附加到一个 NSDatePicker(这是一个 NSControl)。不幸的是,等效的 iPhone 类 (UIControl) 尚不支持此功能。我向 Apple 提出了一个关于它的错误,这是一个已知问题,尽管他们不会告诉我他们是否/何时计划修复/增强它。

于 2009-06-15T13:07:16.130 回答
1

好的,在阅读了过去两年其他人在这里提出相同问题的价值之后,似乎没有办法做到这一点,因为 UIDatePicker 使用用户的国家/地区设置而不是用户的区域设置,并且不能被覆盖以编程方式。我提交了一个错误。

于 2011-06-03T17:32:49.277 回答
0

我通过使用 AM/PM 的用户输入解决了这个问题,方法是根据 12 小时格式将另一个变量初始化为 AM 或 PM 的字符串。24 小时格式的新小时被放入 NSCalendar。以机智:

var hra = 1//ENTER INITIAL HOUR (HH)

var dna = "PM"//ENTER "AM" OR "PM"

if hra <= 12 && dna == "PM"{

     hra = hra + 12
}

变量 hra 现在采用 24 小时格式的值。

于 2015-01-31T16:50:59.733 回答