21

如何UIDatePicker从代码/界面生成器中禁用或隐藏 AM/PM?

我想在UIDatePicker. 请帮忙

4

5 回答 5

14

根据文档,您应该能够将localeUIDatePicker 的属性设置为使用 24 小时格式的语言环境。

NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"da_DK"];
[datePicker setLocale:locale];
[locale release];

唉,有一个错误导致模拟器和设备都根据用户的国际偏好继续布局日期选择器。

正如您所建议的,您必须滚动您的日期选择器才能显示 24 小时选择器。

于 2010-01-26T19:25:08.027 回答
7

AFAIK 你不能(在 SDK 的范围内)。如果用户选择使用 24 小时格式,AP/PM 将消失。如果这很重要,请自己制作UIPickerView

于 2010-01-26T18:59:36.523 回答
2

AM/PM 与 iphone 的区域设置相关联。您可以将选择器的语言环境强制设置为没有 AM/PM 的东西,例如 ro_RO,或者如果您一直想要使用 AM/PM,您可以使用 en_US。对于设置,您可以在右侧的设计器中在英语(美国)等语言环境下或通过代码进行设置

[timePicker setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US"]];

于 2015-05-10T11:49:33.650 回答
1

我知道这是旧的......但我最近正在研究这个并通过一些测试发现了这个:

[datePicker setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_FR"]];

这基本上告诉我“语言”是英语(“en”部分),“时间样式”是法语(默认为 24​​ 小时)(“FR”部分)。我通过反复试验将两者结合起来,发现它正在为我想要的工作,这只是有一个“日期和时间”选择器,它也可以在 24 小时内选择(选择器上没有 AM/PM 部分,用英语文本)。

问题是,当您在此处获取日期时,语言环境可能是错误的 ->

- (void)changeDate:(UIDatePicker *)sender {

因此,请执行此操作以修复日期更改选择部分中的语言环境:

[sender setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_FR"]];
于 2015-09-15T08:40:47.943 回答
-4

这会从选择器中删除 AM/PM...

UIDatePicker *myDatePicker = [[UIDatePicker alloc]init];
[myDatePicker setDatePickerMode:UIDatePickerModeDate];
于 2012-06-01T17:29:22.363 回答