UTC时间字符串到本地时区字符串。

时间:2015-09-16 11:41:44

标签: ios objective-c nsdate nsdateformatter

我从服务器获得UTC时间,我需要在本地时区显示这个时间,这是我的代码

NSString *UTCtime = @"10:30";
NSDateFormatter * frmt = [[NSDateFormatter alloc]init];
[frmt setDateFormat:@"HH:mm"];
NSDate *localTime = [frmt dateFromString:UTCtime];

提前谢谢。

1 个答案:

答案 0 :(得分:0)

一段时间更改TimeZone:

首先,将UTC时间字符串转换为NSDate

NSString *UTCtime = @"10:30";

NSDateFormatter *frmt = [[NSDateFormatter alloc]init];
[frmt setDateFormat:@"HH:mm"];
[frmt setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];

NSDate *utcTime = [frmt dateFromString:UTCtime];

然后计算当前时区与UTC的时差(以秒为单位):

NSInteger timeZoneDiff = [[NSTimeZone systemTimeZone] secondsFromGMT];

将该时差添加到上面计算的NSDate UTC时间

NSDate *localTime = [utcTime dateByAddingTimeInterval:timeZoneDiff];