【问题标题】:Converting timestamp to a different timezone (Swift)将时间戳转换为不同的时区(Swift)
【发布时间】:2020-10-17 22:27:54
【问题描述】:

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

我的代码:

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 年了,我没有找到任何适合我的具体案例的内容)。

【问题讨论】:

    标签: ios swift date timezone


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的快速回复,是的,这确实解决了一个问题,但现在我又遇到了一个问题。 Unexpectedly found nil while unwrapping an Optional value在日期字符串
    • 我查看了我的时间戳 (tryItNow) 的外观,Xcode 告诉我 &lt;FIRTimestamp: seconds=1593194260 nanoseconds=311962000&gt;。我必须更改它的代码 bcs 吗?
    猜你喜欢
    • 2021-09-22
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 2016-10-21
    • 2020-03-17
    • 2013-05-20
    相关资源
    最近更新 更多