gpt4 book ai didi

swift - 在 Unix 时间戳上使用 DateFormatter

转载 作者:IT王子 更新时间:2023-10-29 05:05:05 25 4
gpt4 key购买 nike

我在运行时遇到崩溃,它指向 dateFormmater.timezone。控制台中的错误是:

Could not cast value of type 'Swift.Optional' (0x1192bf4a8) to 'NSTimeZone' (0x1192c0270).

rowEvents.date 的值为 "1480134638.0"

我试图从保存为字符串的 Firebase 中提取 Unix 时间戳。将其转换为日期并再次将其保存为字符串,以便我可以将其发布到单元格标签上。

我从 StackOverflow 获得了这段代码。我插入了我的数据,在我运行它之前一切都很好。我想一切都不是很好......

if let lastUpdated : String = rowEvents.date {

let epocTime = TimeInterval(lastUpdated)! / 1000 // convert it from milliseconds dividing it by 1000

let unixTimestamp = NSDate(timeIntervalSince1970: epocTime) //convert unix timestamp to Date

let dateFormatter = DateFormatter()
dateFormatter.timeZone = NSTimeZone() as TimeZone!
dateFormatter.locale = NSLocale.current // NSLocale(localeIdentifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
dateFormatter.date(from: String(describing: unixTimestamp))

let updatedTimeStamp = unixTimestamp
let cellDate = DateFormatter.localizedString(from: updatedTimeStamp as Date, dateStyle: DateFormatter.Style.full, timeStyle: DateFormatter.Style.medium)

cell.subtitleLabel.text = cellDate
}

结果来自这里的代码:

let myTimeStamp = self.datePicker?.date.timeIntervalSince1970

let calendarDate = String(describing: myTimeStamp! /** 1000*/)

最佳答案

您可以使用 Date(timeIntervalSince1970:)unixTimestamp 转换为日期。

let unixTimestamp = 1480134638.0
let date = Date(timeIntervalSince1970: unixTimestamp)

如果您想在字符串中显示具有特定格式的日期,您可以像这样使用 DateFormatter

let date = Date(timeIntervalSince1970: unixtimeInterval)
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone(abbreviation: "GMT") //Set timezone that you want
dateFormatter.locale = NSLocale.current
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm" //Specify your format that you want
let strDate = dateFormatter.string(from: date)

关于swift - 在 Unix 时间戳上使用 DateFormatter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40648284/

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