2012-11-02 41 views
3
NSString* dateString = @"2012-04-01T15:37:53Z"; 

ISO8601DateFormatter *dateFormat = [[ISO8601DateFormatter alloc] init]; 
[dateFormat setIncludeTime:YES]; 
NSTimeZone *utcTimeZone = [NSTimeZone timeZoneWithName:@"UTC"]; 

NSDate* date = [dateFormat dateFromString:dateString timeZone:&utcTimeZone]; 

STAssertEqualObjects([dateFormat stringFromDate:date timeZone:utcTimeZone], dateString, nil, nil); 

上述測試失敗,並如何在不包含夏令時的情況下從日期創建日期字符串?

'2012-04-01T16:37:53Z' 應等於 '2012-04-01T15:37:53Z'

不確定爲什麼由stringFromDate:date返回的NSString是1個小時後,因爲兩個日期都使用UTC。

+1

也許是因爲類'dateFromString:timeZone:'(或其反轉)編碼錯誤?或者因爲你在一種情況下使用了'&utcTimeZone',而在另一種情況下使用了'utcTimeZone'? –

+0

或者可能設置dateFormat.defaultTimeZone? – lnafziger

回答

相關問題