我被以下代码困扰了。我将字符串日期传递给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)
有人能看到代码有什么问题吗?
非常感谢。 任何想法?
答案 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等等一起使用的语言环境。