2

我被下面的代码难住了。我将字符串日期传递给 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)

任何人都可以看到代码有什么问题吗?

非常感谢。有任何想法吗?

4

3 回答 3

1

可能是语言环境问题。

尝试为日期格式化程序设置一个通用语言环境,例如

NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormat setLocale:usLocale];
[usLocale release];
于 2010-04-09T19:13:46.340 回答
0

您将 dateFormat 设置为

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

但是你把它传递给 dateStr as dateStr = @"0:0";?

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

于 2010-04-14T07:12:53.417 回答
0

所有 12 小时制语言环境都将午夜定义为 12:00。24 小时制(也称为军用时间)时钟将 00:00 定义为午夜。

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

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

于 2010-04-15T09:09:11.113 回答