Получить разницу во времени между двумя конкретными часовыми поясами в iPhone? - PullRequest
1 голос
/ 30 марта 2012

Например, я хочу разницу во времени между Азия / Калькутта Время и Азия / Дубай .

Ответы [ 2 ]

9 голосов
/ 30 марта 2012
NSInteger differenceInSeconds = [timeZone1 secondsFromGMT] - [timeZone2 secondsFromGMT];

Обратите внимание, что это дает текущую разницу во времени между этими часовыми поясами.Если в двух часовых поясах наблюдается переход на летнее время в разное время года, разница во времени зависит от того, когда вы оцениваете это.Если это важно для вас, вы должны использовать secondsFromGMTForDate:, чтобы получить смещение часового пояса на определенную дату.

3 голосов
/ 30 марта 2012
NSDate *now = [NSDate date];
NSDateFormatter *df = [[NSDateFormatter alloc] init] ;
[df setTimeStyle:NSDateFormatterFullStyle];
[df setTimeZone:[NSTimeZone timeZoneWithName:Str]];//str = timezone1(for you its kolkata)
[df setDateFormat:@"dd-MM-yyyy HH:mm"];
NSString *S1 = [df stringFromDate:now];
[df setDateFormat:@"dd-MM-yyyy HH:mm"];
NSDate *dd = [df dateFromString:S1];
//dd = date1 as per timezone
NSLog(@"dd > %@",dd);

[df release];


NSDate *dt = [NSDate date];
NSLog(@"dt = %@",dt);
NSDateFormatter *df1 = [[NSDateFormatter alloc] init];
[df1 setTimeStyle:NSDateFormatterFullStyle];
[df1 setTimeZone:[NSTimeZone timeZoneWithName:Str2]];//str2=timezone2(for you its dubai)
[df1 setDateFormat:@"dd-MM-yyyy HH:mm"];

NSString *S2 = [df1 stringFromDate:dt];

[df setDateFormat:@"dd-MM-yyyy HH:mm"];
NSDate *dd1 = [df dateFromString:S2];
//dd1 = date2 as per timezone
NSLog(@"dd1 > %@",dd1);


NSCalendar *sysCalendar = [NSCalendar currentCalendar];
unsigned int unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit;

NSDateComponents *conversionInfo = [sysCalendar components:unitFlags fromDate:dd  toDate:dd1  options:0];

NSLog(@"Conversion: %dmin %dhours %ddays %dmoths",[conversionInfo minute], [conversionInfo hour], [conversionInfo day], [conversionInfo month]);

Я использую этот код и он работает правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...