我从webservice获得这种格式的时间: 2014-07-26 21:00:00 ,时区偏移: GMT + 0100 。我需要将此转换为 GMT 区域和本地时区。
例如:
原始日期: 2014-07-26 21:00:00
转换
GMT: 2014-07-26 20:00:00
我在印度的时区意味着我需要 2014-07-27 01:30:00
我尝试了很多方法,但我找不到任何解决方案..请帮我解决这个问题..
答案 0 :(得分:2)
首先,您必须将输入日期字符串转换为NSDate
。
这是通过NSDateFormatter
完成的,其中日期格式与输入字符串匹配。
在您的情况下,您将明确设置时区:
NSString *origDateString = @"2014-07-26 21:00:00";
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
[fmt setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[fmt setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT+0100"]];
NSDate *date = [fmt dateFromString:origDateString];
现在您可以根据不同的时间将NSDate
转换回字符串
区:
[fmt setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSString *gmtDateString = [fmt stringFromDate:date];
NSLog(@"%@", gmtDateString);
// 2014-07-26 20:00:00
[fmt setTimeZone:[NSTimeZone localTimeZone]];
NSString *localDateString = [fmt stringFromDate:date];
NSLog(@"%@", localDateString);
// 2014-07-26 22:00:00 (my GMT offset is +02:00)