2011-06-04 33 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小时格式。我仍然无法自己复制它。我确实有这个证据!