将时间戳转换为不同的时区 (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)
我想做的事情: 从我的数据库中获取时间戳并将其转换为用户的时区。
我的代码:
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)