2012-03-30 104 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

相關問題