[英]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.