2015-05-19 50 views
-1

我将服务器时间戳是一个NSString转换为NSDate但是我得到错误的时间。请帮忙。这是我的代码。NSDateFormatter返回错误的分钟

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 

正如你可以告诉它似乎将分钟转换错误。

+0

你没有咨询任何形式的日期格式??? –

+0

我没有咨询这个链接http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns。但是,如果您不完全了解时区代码的工作方式,则只能使用它。 –

+0

组合两个不同的时区代码是没有意义的。 –

回答

0

您的日期格式是不正确的,试试这个

[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 

我不知道这是否是你想要的,如果您有更多的疑问,可随时免费发表评论