将时间戳转换为不同的时区 (Swift)

Converting timestamp to a different timezone (Swift)

我想做的事情: 从我的数据库中获取时间戳并将其转换为用户的时区。

我的代码:

let tryItNow = "\(model.timestampName)"
        
let format = DateFormatter()       
let date = format.date(from: tryItNow)       
format.timeZone = .current       
format.dateFormat = "yyyy-MM-dd HH:mm:ss Z"       
let dateString = format.string(from: date!)   //Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
print(dateString)

问题: 我想 Xcode 告诉我,date 是空的,这不可能是真的。我从一个结构中获取时间戳,而这一切都在一个函数中,这就是它被称为 model.timestampName.

的原因

我试过的方法: 在互联网上搜索,堆栈溢出(大多数教程已有 3 年历史,我没有找到适合我的具体情况的任何内容)。

您必须在 转换您的日期之前指定format.dateFormat :

let format = DateFormatter()      
format.dateFormat = "yyyy-MM-dd HH:mm:ss Z" // <- format of model.timestampName
let date = format.date(from: tryItNow)