Я новичок в программировании и пытаюсь начать свое путешествие с изучения Swift. В настоящее время я работаю над погодным приложением, которое я разрабатываю для учебных целей.
Я использую API openweathermap.org для получения данных о погоде и солнечном свете.
Прямо сейчас я полностью могу анализировать JSON и использовать информацию. Единственная проблема, с которой я сталкиваюсь, заключается в том, что Swift вычисляет время заката и восхода солнца на основе моего местного часового пояса, чего я не хочу.
Я живу в Амстердаме. Если я хочу посмотреть закат и восход солнца в Нью-Йорке, я должен получить информацию о закате и восходе солнца на основе местного времени Нью-Йорка, а не моего.
func sunTimeConverter(unixTimeValue: Double) -> String {
let dateAndTime = NSDate(timeIntervalSince1970: unixTimeValue)
let dateFormater = DateFormatter()
dateFormater.dateStyle = .none
dateFormater.timeStyle = .short
dateFormater.timeZone = TimeZone(abbreviation: "GMT")
dateFormater.locale = Locale.autoupdatingCurrent
let currentdateAndTime = dateFormater.string(from: dateAndTime as Date)
return currentdateAndTime
}
let sunSetFromJSON = jsonObject["sys"]["sunset"].doubleValue
weatherDataModel.citySunSet = sunTimeCoverter(unixTimeValue: sunSetFromJSON)
это объект JSON:
{
"main" : {
"humidity" : 93,
"temp_max" : 285.14999999999998,
"temp_min" : 284.14999999999998,
"temp" : 284.39999999999998,
"pressure" : 1020
},
"name" : "Beverwijk",
"id" : 2758998,
"coord" : {
"lon" : 4.6600000000000001,
"lat" : 52.479999999999997
},
"weather" : [
{
"id" : 701,
"main" : "Mist",
"icon" : "50n",
"description" : "mist"
}
],
"clouds" : {
"all" : 75
},
"dt" : 1510260900,
"base" : "stations",
"sys" : {
"id" : 5204,
"message" : 0.0201,
"country" : "NL",
"type" : 1,
"sunset" : 1510242952,
"sunrise" : 1510210438
},
"cod" : 200,
"visibility" : 4500,
"wind" : {
"speed" : 3.6000000000000001,
"deg" : 220
}
}
Date(timeIntervalSince1970: unixTimeValue)
- person Leo Dabus   schedule 10.11.2017TimeZone(abbreviation: "GMT")
. Вам нужноTimeZone(abbreviation: "EST")
, если вы ищете Нью-Йорк. Если вы хотите сделать его динамическим, вы должны получить эту информацию от устройства. Это по-прежнему обеспечивает детализацию до конкретных городов. - person Aaron   schedule 10.11.2017