gpt4 book ai didi

ios - UNIX时间转换swift iOS

转载 作者:行者123 更新时间:2023-11-30 13:40:42 25 4
gpt4 key购买 nike

我正在尝试使用 swift 将 iOS 中的日出和日落时间转换为“hh:mm AM/PM”格式。

这是我所拥有的,

UNIX 时间:1456239086(这是洛杉矶的日出时间)

func unixTimeConvertion(unixTime: Double) -> String {
let time = NSDate(timeIntervalSince1970: unixTime)
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "hh:mm a"
return dateFormatter.stringFromDate(time)
}

我遇到的问题是,无论我使用哪个城市,东京、北京、波士顿。转换后,“hh:mm AM/PM”始终是我所在位置的本地时间。例如,我在纽约,我得到波士顿的日出时间是“6:39 AM”,这是正确的。当我请求北京的日出时间时,它显示“5:39 PM”。据我所知,这意味着当纽约本地时间下午5:39时,北京太阳升起。

最佳答案

经过一番研究,我发现UNIX时间戳是自特定时间点以来经过的秒数。因此,在我的情况下,需要时区信息。

以下是解决问题的更新代码。

func unixTimeConvertion(unixTime: Double) -> String {
let time = NSDate(timeIntervalSince1970: unixTime)
let dateFormatter = NSDateFormatter()
dateFormatter.timeZone = NSTimeZone(name: timeZoneInfo)
dateFormatter.locale = NSLocale(localeIdentifier: NSLocale.systemLocale().localeIdentifier)
dateFormatter.dateFormat = "hh:mm a"
return dateFormatter.stringFromDate(time)
}

timeZoneInfo 包含时区信息,例如“America/Los_Angeles”。

如果有更好的方法请告诉我。谢谢。

关于ios - UNIX时间转换swift iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35592068/

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