如果您需要在服務器和應用程序上匹配您的時間,則可以設置日期格式化程序的時區,以便將JSON日期字符串轉換爲NSDate,以便在從Web服務獲取時使用GMT。所以,你的日期格式應該初始化是這樣的:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"YYYY-MM-dd'T'HH:mm:ss'Z'"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
然後您可以通過JSON的日期字符串,並使用它創建日期:
NSDate *dateFromServer = [dateFormatter dateFromString:[json valueForKey:@"created_at"]]
// Do something with dateFromServer like save it to CoreData
然後,後來,當你想顯示日期,只需創建另一個日期格式化程序,然後在當地時間用來顯示日期。 NSDate將默認爲系統時區,並顯示正確的時間。
NSDateFormatter *displayDateFormatter = [[NSDateFormatter alloc] init];
[dispalyDateFormatter setDateFormat:@"MMM dd, YYYY"]; // ex. Jul 21, 2012
NSDate *dateFromCoreData = [managedObject valueForKey:@"CreatedAt"];
NSString *dateString = [displayDateFormatter stringFromDate:dateFromCoreData];
// Display your date string in a UILabel or Table View Cell, etc.
此致敬禮。
這是由ISO 8601(http://en.wikipedia.org/wiki/ISO_8601)指定的格式。看看http://stackoverflow.com/q/5185230/684934或http://stackoverflow.com/q/7925038/684934。 – bdares