我試圖從UTC時間字符串獲取NSDate
對象。時間字符串的例子是這樣的:從UTC格式的時間字符串獲取NSDate
2016-07-29T11:43:55+02:00
我使用NSDateFormatter
並設置酸鹽,爲:yyyy-MM-dd'T'HH:mm:ss
但是這給了我取不正確的時區。所以上述日期將是:2016-07-29T09:43:55 + 00:00
我該如何保持時區方面?
我曾嘗試加入'Z'
到格式化的結束,而是剛剛返回一個零日期。
我試圖從UTC時間字符串獲取NSDate
對象。時間字符串的例子是這樣的:從UTC格式的時間字符串獲取NSDate
2016-07-29T11:43:55+02:00
我使用NSDateFormatter
並設置酸鹽,爲:yyyy-MM-dd'T'HH:mm:ss
但是這給了我取不正確的時區。所以上述日期將是:2016-07-29T09:43:55 + 00:00
我該如何保持時區方面?
我曾嘗試加入'Z'
到格式化的結束,而是剛剛返回一個零日期。
試試這個
NSDateFormatter *userFormatter = [[NSDateFormatter alloc] init];
[userFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"];
NSLocale *posix = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[userFormatter setLocale:posix];
NSString *dateConverted = [userFormatter stringFromDate:theDate];
這是行不通的(格式化程序中缺少'T')並且它不回答問題。 – Droppy
感謝社會各界的幫助。解決了這個問題。我的iOS模擬器上的時間是正確的。不過,當我撥打[NSDate date];
時,它顯示了當地時間兩小時前的一段時間。因此,我在NSDate的格式中看到了'錯誤'。
這是正確的。 9比當地時間晚兩個小時。 – Tander
[轉換ISO 8601來的NSDate(http://stackoverflow.com/questions/17558859/convert-iso-8601-to-nsdate) – vadian
您的日期格式是正確的,日期字符串正確地分析,所以有可能的複製你問你是如何檢測GMT抵消傳入的日期字符串? – Droppy