2015-05-19 4 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 

Я не уверен, если это то, что вы хотите, если у вас есть вопросы, чувствовать бесплатно для комментариев

Смежные вопросы