我的 Web 服务在 JSON 响应中返回以下日期字符串。此日期字符串已采用 UTC。
{“last_updated_at”:“2012-11-19 07:55:30”}
我使用 NSDateFormatter 解析响应日期字符串,如下所示。
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
if ([ticketFields objectForKey:@"last_updated_at"] != [NSNull null]) {
self.lastUpdatedAt = [dateFormatter dateFromString:[ticketFields objectForKey:@"last_updated_at"]];
NSLog(@"Time Response string %@", [ticketFields objectForKey:@"last_updated_at"]);
NSLog(@"Formatted NSDate %@", self.lastUpdatedAt);
}
这是我的日志输出
Time Response string 2012-11-21 11:38:44
Formatted NSDate 2012-11-21 06:08:44 +0000
如您所见,NSDateFormatter 除了解析日期字符串外,还认为日期字符串在 UTC+530(我的本地时区)中,并通过从给定日期减去 530 小时自动将其转换为 UTC。我不希望这种情况发生。NSDateFormatter 应该从给定的字符串转换日期,理想情况下给出以下输出。
Time Response string 2012-11-21 11:38:44
Formatted NSDate 2012-11-21 11:38:44 +0000