首页 > 解决方案 > DateFormatter() 与双类型秒 swift

问题描述

我正在尝试将从服务器获取的日期时间转换为本地时间。我正在使用 DateFormatter(),经过网络研究,格式服务器发送的格式如下:“yyyy-MM-dd'T'HH:mm:ss”。但是,实际发送的字符串服务器看起来像:2021-06-21T06:00:19.251588,我猜这里以详细的格式给出了秒数。但是,当我通过函数运行它以转换为本地时间时,它返回 nil。这是我的代码:

func utcToLocal(dateStr: String) -> String? {
    //dateStr is 2021-06-21T06:00:19.251588
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
    dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
    
    if let date = dateFormatter.date(from: dateStr) {
        dateFormatter.timeZone = TimeZone.current
        dateFormatter.dateFormat = "yy.MM.dd"
    
        return dateFormatter.string(from: date)
    }
    return nil
}

我有没有可能使用错误的日期格式?

标签: swiftdateformatter

解决方案


推荐阅读