Swift将Unix时间戳转换为带时区的Date并保存到EKEvent



我试图在应用程序中将unix时间戳(Int(转换为Date类型。我找到了一个解决方案

let str = timeValue as? NSNumber
return Date(timeIntervalSince1970: str.doubleValue)

这个解决方案有效,但我如何设置时区。我找到了另一个使用格式化程序但使用格式化程序返回字符串的解决方案。

func convertDateTime(timeValue: Int) -> String {
let truncatedTime = Int(timeValue)
let date = Date(timeIntervalSince1970: TimeInterval(truncatedTime))
let formatter = DateFormatter()
formatter.timeZone = TimeZone(abbreviation: "GMT+8")
formatter.dateFormat = "dd/MM/yyyy hh:mm a"
return formatter.string(from: date)
}

有人能回答我怎么做吗?

编辑:我想将其保存为EKEvent

Dates表示时间上的瞬间/点-";从参考点开始的x秒";。它们不是";从位置处的参考点开始x秒";,所以时区不是它们的一部分。";设置CCD_ 3"的时区;,同样的道理;设置CCD_ 4"的小数位数;。

看起来您实际上想要存储一个EKCalendarEvent。好吧,EKCalendarEvents确实有一个时区,因为它们是在特定时刻/天(occurrenceDate(、某个时区(timeZone(发生的事件。因此,您只需要设置EKEventtimeZone属性,而不是Date

最新更新