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

我不知道這是否是你想要的,如果您有更多的疑問,可隨時免費發表評論