NSDateFormatter 返回错误的分钟数

NSDateFormatter returning wrong minutes

我正在将 NSString 的服务器时间戳转换为 NSDate,但是我得到了错误的时间。请帮忙。这是我的代码。

NSLog(@"string %@", string);

// Setup Date Formatter
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setTimeZone:[NSTimeZone defaultTimeZone]];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.zzzZ"];

// Get Date From String
NSDate *dateOfCall = [formatter dateFromString:string];
NSLog(@"dateOfCall %@",dateOfCall);

[formatter setDateFormat:@"h:mm a"];
NSString *dateString = [formatter stringFromDate:dateOfCall];
NSLog(@"dateString %@",dateString);

这是我的日志。

string 2015-05-19T01:48:33.603890Z
dateOfCall 2015-05-19 01:38:29 +0000
dateString 9:38 PM

如您所知,它似乎将分钟转换错了。

你的日期格式不对,试试这个

    [formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ"];

这将输出

2015-05-19 10:31:04.530 OCTest[2428:76257] string 2015-05-19T01:48:33.603890Z
2015-05-19 10:31:04.534 OCTest[2428:76257] dateOfCall 2015-05-19 01:48:33 +0000
2015-05-19 10:31:35.113 OCTest[2428:76257] dateString 9:48 AM

不知道是不是你想要的,如果有更多问题,欢迎评论