如果您需要您的时间在服务器和应用程序上匹配,您只需设置用于将 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.
此致。