gpt4 book ai didi

swift - 在 Swift 4 中获得时间

转载 作者:搜寻专家 更新时间:2023-11-01 05:33:44 24 4
gpt4 key购买 nike

我是编程新手,正尝试通过学习 Swift 开始我的旅程。目前我正在开发一个天气应用程序,我正在为学习目的而开发它。

我正在使用 openweathermap.org API 获取天气和太阳能数据。

现在我完全能够解析 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
}
}

最佳答案

你需要稍微改变你的方法并添加你想要显示的时区:

func sunTimeCoverter(unixTimeValue: Double, timezone: String) -> String {
let dateAndTime = NSDate(timeIntervalSince1970: unixTimeValue)
let dateFormater = DateFormatter()
dateFormater.dateStyle = .none
dateFormater.timeStyle = .short
dateFormater.timeZone = TimeZone(abbreviation: timezone)
dateFormater.locale = Locale.autoupdatingCurrent
let currentdateAndTime = dateFormater.string(from: dateAndTime as Date)
return currentdateAndTime
}

所以对于纽约,你可以这样调用它:(你需要从 openweathermap.org 知道时区)

let sunSetFromJSON = jsonObject["sys"]["sunset"].doubleValue
weatherDataModel.citySunSet = sunTimeCoverter(unixTimeValue: sunSetFromJSON, timezone: "UTC-05:00")

关于swift - 在 Swift 4 中获得时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47212198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com