簡體   English   中英

在Swift中將字符串轉換為NSDate

[英]Converting a string to NSDate in Swift

我在Swift中將字符串轉換為NSDate時遇到問題。 我的日期字符串采用以下格式:

2016-05-06T14:07:23.430Z

我有一個返回格式化日期字符串的函數,如下所示,傳遞給該函數的日期字符串的格式如上所示:

private func formatDate(theDate:String?) -> String {
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "MM-dd-yy H:mm"
    let actualDate = dateFormatter.dateFromString(theDate!) //always produces nil
    let formattedDate = dateFormatter.stringFromDate(actualDate!)
    return formattedDate
}

當嘗試從傳遞給函數的字符串中獲取日期對象時,日期對象始終為nil。 誰能解決這個問題? 謝謝!

看到這個答案:

let myDateString = "2016-05-06T14:07:23.430Z"

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-dd-MM'T'HH:mm:ss.SSS'Z"
let dateFromString = dateFormatter.dateFromString(myDateString)

let dateFormatter1  = NSDateFormatter()
dateFormatter1.dateFormat = "MM-dd-yy H:mm"
let getDate =  dateFormatter1.stringFromDate(dateFromString!)

print(getDate)

您的輸出:

在此處輸入圖片說明

let strDate = "2016-05-06T14:07:23.430Z"

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
let date = dateFormatter.dateFromString(strDate)

您使用了錯誤的DateFormat。 輸入日期和輸出日期不應使用相同的NSDateFormatter

試試這個: yyyy-dd-MM'T'HH:mm:ss.SSS'Z'作為您的輸入。 這是一個完整的解決方案:

func formatDate(theDate: String?) -> String {

    let inputDateFormatter = NSDateFormatter()
    inputDateFormatter.dateFormat = "yyyy-dd-MM'T'HH:mm:ss.SSS'Z'"
    let outputDateFormatter = NSDateFormatter()
    outputDateFormatter.dateFormat = "MM-dd-yy H:mm"

    let actualDate = inputDateFormatter.dateFromString(theDate!)
    let formattedDate = outputDateFormatter.stringFromDate(actualDate!)
    return formattedDate
}

formatDate("2016-05-06T14:07:23.430Z") // returns 06-05-16 14:07

暫無
暫無

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

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