Я делаю приложение, которое, помимо прочего, определяет закат и восход солнца.Тем не менее, я нашел некоторые трудности, чтобы заставить их использовать местное время пользователя.Поэтому я хотел бы знать: как я могу получить часовой пояс пользователя в Swift?
Координаты моего тестового местоположения (Puerto Vallarta, Mex), который я загружаю в симуляторе iPhone, таковы:
Широта: 20.61 Долгота: -106.23
Следующая часть является частью моего кода для определения восхода и захода солнца в любом месте в мире:
//First we get the sunrise time.
let sunriseDate = Date(timeIntervalSince1970: sunriseValue.doubleValue)
let formatter = DateFormatter()
formatter.dateStyle = .none
formatter.timeStyle = .medium
formatter.timeZone = NSTimeZone(name: "UTC")! as TimeZone
formatter.dateFormat = "HH:mm:ss"
let sunrise = formatter.string(from: sunriseDate)
print(sunrise)
//Second, we get the sunset time
let sunsetDate = Date(timeIntervalSince1970: sunsetValue.doubleValue)
let sunset = formatter.string(from: sunsetDate)
print(sunset)
И вот чтоЯ получаю из консоли:
Восход: 13:08:12 Закат: 00: 21: 22 * 1013 *
Это более чем очевидно, что напечатанные восход и закат соответствуютк UTC, тем не менее, я не нашел никакой прямой информации, которая могла бы помочь мне узнать местное время пользователя, где бы он ни находился.
В основном восход и заход солнца, которые вы видите в приведенном выше коде, я получил егоиз API (openweather), из которого я получил их значения в Unix-времени (который я конвертировал в дату и время, используя эту ссылку . Теперь я вижу, что я получил правильные закаты и восходы, но в формате UTC,нетw Мне не хватает одного шага для перехода от UTC к местному времени.
Итак, в итоге, я получил:
от API: время в unix-времени (например, sunrise = 1541855294;sunset = 1541895681;), извлеките из него время с помощью DateFormatter () (см. код выше), и я получил время UTC (formatter.dateFormat = "ЧЧ: мм: сс").
Я надеюсь, что сВ этой модификации вопрос теперь более ясен.
Вот почему я хотел спросить вас, не могли бы вы помочь мне с этим, пожалуйста:)
Заранее спасибо, и я прошу прощения за любое недопонимание!