iphone - NSDateFormatter问题?

时间:2010-11-16 23:08:59

标签: iphone objective-c nsdateformatter

我有一个nsdateformatter

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];

表示价值:2010-01-01 05:00:00.000 它返回正确的值

但价值为:2010-01-01 05:22:00.000 它返回null。

根据文档我是否正确分钟我假设使用“mm” 那么我的代码有什么问题,为什么它会返回nil?

2 个答案:

答案 0 :(得分:4)

NSDateFormatter * f = [[NSDateFormatter alloc] init];
[f setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
NSLog(@"%@", [f dateFromString:@"2010-01-01 05:00:00.000"]);
NSLog(@"%@", [f dateFromString:@"2010-01-01 05:22:00.000"]);
[f release];

日志:

2010-11-16 16:44:11.867 EmptyFoundation[42477:a0f] 2010-01-01 05:00:00 -0700
2010-11-16 16:44:11.868 EmptyFoundation[42477:a0f] 2010-01-01 05:22:00 -0700

所以它正在解析事情。因此,你在其他地方做错了。

答案 1 :(得分:0)

对我来说看起来很干净。我试了一下,得到了正确的结果:

NSDateFormatter *f = [[NSDateFormatter alloc] init];
[f setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
NSDate *date = [f dateFromString:@"2010-01-02 03:44:55.666"];

NSLog(@"%@",date);
NSDateFormatter *f2 = [[NSDateFormatter alloc] init];
[f2 setDateFormat:@"d. MMMM yyyy HH mm ss SSS"];
NSString *s = [f2 stringFromDate:date];

NSLog(@"Date is really %@",s);

返回以下输出:

2010-11-16 18:48:35.221 Test3[6407:207] 2010-01-02 03:44:55 -0500
2010-11-16 18:48:35.223 Test3[6407:207] Date is really 2. January 2010 03 44 55 666