我当前的设备时间是 --- 2013-05-09 10:23 AM
我使用以下代码将其转换为 int GMT
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm a";
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[dateFormatter setTimeZone:gmt];
NSString *timeStamp = [dateFormatter stringFromDate:[NSDate date]];
NSLog(@"time in GMT ------ %@",timeStamp);
我得到了输出
time in GMT ------ 2013-05-10 04:53 AM
然后我找到了我的时区
NSTimeZone *localTime = [NSTimeZone systemTimeZone];
NSLog(@"local timezone is------ %@",[localTime name]);
输出
local timezone is------ Asia/Kolkata
现在我需要将上面的 GMT 时间转换为本地时间。我使用了以下代码
NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:[localTime name]];
[dateFormatter setTimeZone:sourceTimeZone];
NSDate *dateFromString = [dateFormatter dateFromString:timeStamp];
NSLog(@"local time is ------- %@",dateFromString);
但我得到了一个错误的输出..
local time is ------- 2013-05-09 19:23:00 +0000
为什么会这样?我应该得到当地时间 - 2013-05-09 10:23 AM