从UTC-5时区date和时间iPhone应用获取当前的iPhone设备时区date和时间?

在我的iPhone应用程序,我非常努力地将web服务响应时间转换为当前设备时间。 webservice time in UTC-5 timezonewebservice time in UTC-5 timezone 。 该应用程序是全球使用应用程序 所以我必须将响应时间转换为当前设备时区。 这是简单的消息应用程序。

当我发送message the time is "5:05 PM" (India Chennai timezone)但是当我webservice is "2012-07-16 07:33:01"检索时间webservice is "2012-07-16 07:33:01" 。 当我在应用程序中显示时间时,我应该将时间转换为设备的当地时间。 我已经尝试了一些方法,但我还不能解决。 代码是:

 NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init]; [dateFormatter1 setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; [dateFormatter1 setLocale:[NSLocale currentLocale]]; //[dateFormatter1 setTimeZone:[NSTimeZone timeZoneWithName:@"IST"]]; [dateFormatters setTimeZone:[NSTimeZone systemTimeZone]]; NSDate *date = [dateFormatter1 dateFromString:dateStr]; NSLog(@"date : %@",date); 

但输出的date和时间是2012-07-16 02:03:01 +0000我已经存储这个date/时间在Coredata ,当我从CoreData检索和隐藏到NSString使用下面的代码,

 NSDateFormatter *dateFormatters = [[NSDateFormatter alloc] init]; [dateFormatters setDateFormat:@"dd-MMM-yyyy hh:mm"]; [dateFormatters setDateStyle:NSDateFormatterShortStyle]; [dateFormatters setTimeStyle:NSDateFormatterShortStyle]; [dateFormatters setDoesRelativeDateFormatting:YES]; [dateFormatters setTimeZone:[NSTimeZone systemTimeZone]]; dateStr = [dateFormatters stringFromDate:dateString]; NSLog(@"DateString : %@", dateStr); 

输出date和时间是“ Today 7:33 AM ”。 应该显示“ Today 5:05 PM ”。 任何人都可以保存我的一天吗? 请帮忙解决这个问题。 提前致谢。

Mr.Gopinath。 我testing了你的场景并添加了一些代码供你参考。 请testing下面,请让我知道它对你有用。

 NSString *dateStr = @"2012-07-16 07:33:01"; NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init]; [dateFormatter1 setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSDate *date = [dateFormatter1 dateFromString:dateStr]; NSLog(@"date : %@",date); NSTimeZone *currentTimeZone = [NSTimeZone localTimeZone]; NSTimeZone *utcTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"]; NSInteger currentGMTOffset = [currentTimeZone secondsFromGMTForDate:date]; NSInteger gmtOffset = [utcTimeZone secondsFromGMTForDate:date]; NSTimeInterval gmtInterval = currentGMTOffset - gmtOffset; NSDate *destinationDate = [[[NSDate alloc] initWithTimeInterval:gmtInterval sinceDate:date] autorelease]; NSDateFormatter *dateFormatters = [[NSDateFormatter alloc] init]; [dateFormatters setDateFormat:@"dd-MMM-yyyy hh:mm"]; [dateFormatters setDateStyle:NSDateFormatterShortStyle]; [dateFormatters setTimeStyle:NSDateFormatterShortStyle]; [dateFormatters setDoesRelativeDateFormatting:YES]; [dateFormatters setTimeZone:[NSTimeZone systemTimeZone]]; dateStr = [dateFormatters stringFromDate: destinationDate]; NSLog(@"DateString : %@", dateStr); 

谢谢。

 NSDate* currentDate = [NSDate date]; NSTimeZone* CurrentTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; NSTimeZone* SystemTimeZone = [NSTimeZone systemTimeZone]; NSInteger currentGMTOffset = [CurrentTimeZone secondsFromGMTForDate:currentDate]; NSInteger SystemGMTOffset = [SystemTimeZone secondsFromGMTForDate:currentDate]; NSTimeInterval interval = SystemGMTOffset - currentGMTOffset; NSDate* TodayDate = [[NSDate alloc] initWithTimeInterval:interval sinceDate:currentDate]; NSLog(@"Current time zone Today Date : %@", TodayDate); 

希望它有助于另一个开发人员! 快乐编码!