在uidatepicker上设置日期错误

时间:2010-04-04 09:05:34

标签: iphone uidatepicker

我被以下代码困扰了。我将字符串日期传递给UIDatePicker,它似乎适用于大多数设备,但在某些设备上,它会使应用程序崩溃。

这是代码

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"HH:mm"];
NSDate *date = [dateFormat dateFromString:dateStr];
[timePicker setDate:date];
[dateFormat release];

我有一个传递“dateStr”变量的函数,如下所示,dateStr = @"0:0";我看不出有什么问题 - 因为它对我有用! (iphone 3.1.3)但它对我的测试人员不起作用(ipod touch 3.1.3)

有人能看到代码有什么问题吗?

非常感谢。 任何想法?

3 个答案:

答案 0 :(得分:1)

可能是语言环境问题。

尝试为日期格式化程序设置公共区域设置,例如

NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormat setLocale:usLocale];
[usLocale release];

答案 1 :(得分:0)

您将dateFormat设置为

[dateFormat setDateFormat:@"HH:mm"];

然而你将dateStr传递给dateStr = @"0:0";

尝试传入dateStr = @"00:00";,这实际上符合格式化程序的格式

答案 2 :(得分:0)

所有12小时的区域设置将午夜定义为12:00。 24小时(也称军事时间)时钟的00:00定义为午夜。

在您的示例中,您正在“强制”UIDatePicker上具有可能未知格式的字符串。

检查您的语言环境设置,并始终指定与字符串时间表示,en_US,da_DK等等一起使用的语言环境。