2012-05-31 68 views
2

也許有人可以幫助解釋爲什麼我在將字符串轉換爲日期時得到空值。這一切看起來不錯,但我顯然在這裏失去了一些東西。NSDateFormatter生成(null)SQLite和iOS 5.1

一些背景資料:

這個iPad應用程序會在不同的國家使用,我需要做的日期的計算,看看的90天,因爲上次登錄的用戶通過

我。有一個DateLastIn字段設置爲文本SQLite數據庫

我的對象有一個DateLastIn屬性設置爲NSDate的

當填充我的記錄對象我成立了一個NSDateFormatter這樣..

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"]; // SQLite default date format 

然後我在DateLastIn中讀取(使用SQLite的FMDB封裝)。

 // test SQLite as String 
     NSString *testDate = [results stringForColumn:@"DateLastIn"]; 
     NSLog(@"DateLastIn straight from DB (string) shows %@", testDate); 

結果: DateLastIn直接從DB(串)顯示2012-04-23 18時20分51秒

所有的已經很不錯了。接下來,我測試轉換這一個NSDate對象如

 NSDate *aDate = [[NSDate alloc] init]; 
     aDate = [formatter dateFromString:testDate]; 
     NSLog(@"Using formmater on string date results in: %@", aDate); 

結果: 在字符串日期結果使用formmater:(空)

我已經嘗試過的SQLite DATETIME,我一直在使用的NSString嘗試在我的對象,而不是NSDate,似乎是圍繞着圈子。

任何幫助非常感謝。

回答

2

我把你的日期格式改成了HH而不是hh,它可以工作。這裏是我的測試代碼....

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; // SQLite default date format 


// test SQLite as String 
NSString *testDate = @"2012-04-23 18:20:51"; 



NSDate *aDate = [formatter dateFromString:testDate]; 

NSLog(@"Using formmater on string date results in: %@", aDate); 
+0

謝謝你,非常感謝你和丹尼爾。 – GeoffCoope