为什么NSDateFormatter会误解他自己创建的dateString?
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"YYYY-MM-DD'T'HH:mm:ss.SSSZZZZ"];
NSDate *now = [NSDate date];
NSLog(@"Now: %@, Date: %@", [dateFormatter dateFromString:[dateFormatter stringFromDate:now]], now);
产生以下结果: 现在:1970-01-06 18:07:05 + 0100,日期:2010-01-06 18:07:05 +0100
我知道你应该使用yyyy和dd(而yyyy和dd不会发生这种情况),但这不是重点。我希望在解析格式化程序为我创建的字符串时收到相同的日期。
答案 0 :(得分:1)
这将有效
[dateFormatter setDateFormat:@"y-MM-DD'T'HH:mm:ss.SSSZZZZ"];
在这里,http://www.crystalminds.nl/?p=4了解有关不同标志的更多信息。
似乎格式化程序在使用YYYY时无法识别任何年份,因为
[dateFormatter setDateFormat:@"YYYY-MM-DD'T'HH:mm:ss.SSSZZZZ"];
// is equal to
[dateFormatter setDateFormat:@"MM-DD'T'HH:mm:ss.SSSZZZZ"];