簡體   English   中英

Swift ISO8601格式到Date返回致命錯誤

[英]Swift ISO8601 format to Date returning fatal error

我試圖返回一個ISO8601日期並將其附加到一個數組但是我一直遇到問題。 出於某種原因,我在解開可選值時發現了nil,因為它發現了nil。 但是我知道價值肯定在那里。 我格式化錯誤了嗎?

time_released格式 - >“2006-11-30T00:00:00.000Z”

if movieInfo.time_released != nil {

            let dateFormatter = ISO8601DateFormatter()
            let date = dateFormatter.date(from: movieInfo.time_released!)
            let dateString = dateFormatter.string(from: date!)

            array.append(dateString)
        }

默認的ISO8601格式化程序不解析小數秒,因此當您嘗試解析包含它們的日期字符串時,這將返回nil。 如果你想要小數秒,你需要請求它們:

import Foundation

let time_released = "2006-11-30T00:00:00.000Z"

let dateFormatter = ISO8601DateFormatter()
dateFormatter.formatOptions.insert(.withFractionalSeconds)
if let date = dateFormatter.date(from: time_released) {
    let dateString = dateFormatter.string(from: date)
    print(dateString)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM