NSDateFormatter之后的NSDate为null

时间:2011-06-04 17:42:34

标签: iphone ios4 nsdate nsdateformatter

为什么dateformatter返回null? objSelectedNote.notedate的类型为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

2 个答案:

答案 0 :(得分: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; 
            }

答案 1 :(得分:0)

我只有一个用户遇到此问题。并且他修改了它在他的设置中从12小时格式切换到24小时。我仍然无法自己重现它。我确实有证据证明这一点!