Я пробовал APTimeZones
библиотеку.В моем случае мне понадобился часовой пояс, а также название страны из латинского конкретного города.Я прошел библиотеку, чтобы узнать, как она работает.На самом деле в нем есть файл в формате JSON, в котором есть все часовые пояса и соответствующие им значения долготы.он принимает значение lat long в качестве входных данных и проходит через этот JSON-файл, сравнивая расстояния всех значений long в часовом поясе от входного значения lat long.Он возвращает часовой пояс, который имеет наименьшее расстояние от входного лат длинного.
Но проблема была для города на границе большой страны, он вернул мне часовой пояс соседней страны, так как я также извлекКод страны оттуда, я получил соседнюю страну.
Так что родная платформа Apple в этом случае очень хороша.
И приведенный ниже код работал для меня хорошо.
CLLocation *location = [[CLLocation alloc] initWithLatitude:your_latitude longitude:your_longitude];
CLGeocoder *geoCoder = [[CLGeocoder alloc]init];
[geoCoder reverseGeocodeLocation: location completionHandler:^(NSArray *placemarks, NSError *error)
{
CLPlacemark *placemark = [placemarks objectAtIndex:0];
NSLog(@"Timezone -%@",placemark.timeZone);
//And to get country name simply.
NSLog(@"Country -%@",placemark.country);
}];
In Swift
let location = CLLocation(latitude: your_latitude, longitude: your_longitude)
let geoCoder = CLGeocoder()
geoCoder.reverseGeocodeLocation(location) { (placemarks, err) in
if let placemark = placemarks?[0] {
print(placemark.timeZone)
print(placemark.country)
}
}