2012-03-30 107 views

回答

3
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]); 

我是usin这个代码,它的工作正常。

+0

感谢chinttu它在为我工作 – iDhaval 2012-03-30 09:14:22

8
NSInteger differenceInSeconds = [timeZone1 secondsFromGMT] - [timeZone2 secondsFromGMT]; 

请注意,这给出了这些时区之间的当前时差。如果这两个时区在一年的不同时间观察夏令时,则时差将取决于您何时对其进行评估。如果这对您很重要,您应该使用secondsFromGMTForDate:获取特定日期的时区偏移。

+0

这是更好,但不是愿望 – iDhaval 2012-03-30 09:15:12

+1

我不知道这意味着什么 – yuji 2012-03-30 09:18:18

+0

伟大的答案谢谢 – Andrea 2015-12-03 09:47:48

相关问题