如何计算两个位置之间的时差

时间:2009-09-24 10:35:36

标签: objective-c cocoa nstimezone

我在计算两个时区之间的时差时遇到问题。

如果我在位置A,我知道纬度和经度以及当前时间。 我去了位置B我知道纬度和经度以及当前时间。

如何计算两个当前点之间的时差..(以UTC为单位)

1 个答案:

答案 0 :(得分:4)

首先获取一个转换纬度/经度以获得国家和州/省的数据库或库。然后使用NSTimeZone类检索特定国家/地区的时区。您可以从许多站点购买此类数据库,即:      http://www.ip2location.com/

要进行实际转换,您可以执行以下操作:

NSTimeZone *sourceTimeZone =
    [NSTimeZone timeZoneWithAbbreviation: @"GMT"];
NSTimeZone *destinationTimeZone =
    [NSTimeZone timeZoneWithAbbreviation: @"EST"];

NSInteger sourceSeconds =
    [sourceTimeZone secondsFromGMTForDate:date];
NSInteger destinationSeconds =
    [destinationTimeZone secondsFromGMTForDate:date];
NSTimeInterval interval = destinationSeconds - sourceSeconds;