2011-06-04 35 views
1

爲什麼dateformatter返回null? objSelectedNote.notedate是NSDate類型的。 [NSDate的日期]正常工作......NSDate的是空

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"yyyy-MM-dd"]; 
NSLog(@"%@", [df stringFromDate:obj_SelectedNote.notedate]); 
NSLog(@"%@", obj_SelectedNote.notedate); 
NSLog(@"%@", [df stringFromDate:[NSDate date]]); 
[df release]; 

的NSLog迴應:

2011-06-04 10:31:25.441 ail[40632:207] (null) 
2011-06-04 10:31:27.828 ail[40632:207] 2011-06-04 00:18:23 -0700 
2011-06-04 10:31:30.340 ail[40632:207] 2011-06-04 
+1

的代碼你貼*應該*工作。我懷疑,什麼是錯用'obj_SelectedNote.notedate'。你能證實它實際上是一個有效的'NSDate'對象嗎? '的NSLog(@ 「%@」,NSStringFromClassName([obj_SelectedNote.notedate類]));' – 2011-06-04 17:52:52

+0

的NSLog(@ 「%@」,NSStringFromClassName([obj_SelectedNote.notedate類]));拋編譯錯誤... – xoail 2011-06-04 17:57:22

+0

不好意思:應該是'NSStringFromClass(...)' – 2011-06-04 18:02:01

回答

1

原來有從sqlite的檢索數據的問題。這段代碼幫助我解決它。

const char *temp_notedate = (const char *)sqlite3_column_text(selectionStmt, 3); 
      if(temp_notedate){ 
       NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
       NSString *newstr = [NSString stringWithUTF8String:temp_notedate]; 
       [df setDateFormat:@"yyyy-MM-dd HH:mm:ss ZZZ"]; 
       NSDate * newdate = [df dateFromString:newstr]; 
       objNotes.notedate = newdate; 
      } 
0

我只有一個用戶有這個問題。並且他在他的設置中修復了從12小時格式切換到24小時格式。我仍然無法自己複製它。我確實有這個證據!