以下代码段将给出意外的输出:
片段:
NSString* testDateStr = [[NSString alloc] initWithString"2010-04-04 19:11:11"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat"yyyy-MM-dd HH:mm:ss"];
NSLog(@"'%@'", testDateStr);
NSLog(@"'%@'", [dateFormatter dateFromString:testDateStr]);
输出:
'2010-04-04 19:11:11'
'2010-04-04 09:11:11 +0000'
请注意生成日期的时间小时是错误的。我在这里做错了什么吗?
Best Answer-推荐答案 strong>
NSDateFormatter 默认为本地时区。当您打印 NSDate 对象的 description 时,它会以 GMT 打印(注意末尾的 +0000)。此代码完全按预期工作。 (您本地时区的 19:11:11 与 GMT 的 09:11:11 相同。)
您始终可以通过调用 setTimeZone: 来覆盖 NSDateFormatter 的时区。
关于iOS NSDateformatter 问题 - dateFromString 无法按预期正常工作,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/7539466/
|