iOS:将UTC时区转换为设备本地时区

我试图将下面的时区转换为设备本地时区:

2013-08-03T05:38:39.590Z 

请让我知道如何将其转换为当地时区。

我该怎么做?

时区可以应用于NSDateFormatter ,从中可以生成区分时差的NSDatevariables。

 NSString* input = @"2013-08-03T05:38:39.590Z"; NSString* format = @"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"; // Set up an NSDateFormatter for UTC time zone NSDateFormatter* formatterUtc = [[NSDateFormatter alloc] init]; [formatterUtc setDateFormat:format]; [formatterUtc setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; // Cast the input string to NSDate NSDate* utcDate = [formatterUtc dateFromString:input]; // Set up an NSDateFormatter for the device's local time zone NSDateFormatter* formatterLocal = [[NSDateFormatter alloc] init]; [formatterLocal setDateFormat:format]; [formatterLocal setTimeZone:[NSTimeZone localTimeZone]]; // Create local NSDate with time zone difference NSDate* localDate = [formatterUtc dateFromString:[formatterLocal stringFromDate:utcDate]]; NSLog(@"utc: %@", utcDate); NSLog(@"local: %@", localDate); [formatterUtc release]; [formatterLocal release]; 

尝试像这样:

  NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]]; [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; NSDate* utcTime = [dateFormatter dateFromString:@"2013-08-03T05:38:39.590Z"]; NSLog(@"UTC time: %@", utcTime); [dateFormatter setTimeZone:[NSTimeZone systemTimeZone]]; [dateFormatter setDateFormat:@"M/d/yy 'at' h:mma"]; NSString* localTime = [dateFormatter stringFromDate:utcTime]; NSLog(@"localTime:%@", localTime); 

希望它可以帮助你…