2010-04-04 53 views
2

我被下面的代碼難住了。我將一個字符串日期傳遞給一個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)

任何人都可以看到代碼的任何錯誤?

非常感謝。 有什麼想法?

回答

1

可能是locale問題。

嘗試爲日期格式化程序設置常用的語言環境,例如

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

這似乎已經解決了它。謝謝大家的答案。 – 2010-04-15 21:16:53

0

您設定的日期格式,以

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

但你通過它dateStr爲dateStr = @"0:0";

嘗試傳遞dateStr = @"00:00";這將真正符合您的格式化的格式

0

所有12個小時的語言環境定義午夜12:00。 24小時(也稱爲軍用時間)時鐘的00:00定義爲午夜。

在你的例子中,你在你的UIDatePicker上「強制」一個可能未知格式的字符串。

檢查您的區域設置並始終指定與字符串時間表示形式en_US,da_DK等一起使用的區域設置。

相關問題