2017-08-03 108 views
0

在代碼中,我試圖從舊格式更改新的日期格式,但無法做到它崩潰,並顯示「致命錯誤:意外地發現零,而解開一個可選值」但我找不到原因,請幫忙找到原因。無法在swift中更改舊的日期格式?

這裏,我給我所試過的代碼..

let dateString:String = (historyRequestArray[indexPath.row] as AnyObject).value(forKey: "date") as! String 
     let dateFormatter = DateFormatter() 
     dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss" 
     let dateObj = dateFormatter.date(from: dateString) 
     dateFormatter.dateFormat = "dd-MMM-yyyy" 
     let finalDateStr:String = dateFormatter.string(from: dateObj!) 

的dateString具有價值.. dateString是:2017年8月2日14時09分22秒

現在目前的格式是:「YYYY-MM-DD HH:MM:SS」

但我想轉換爲:「DD-MMM-YYYY」

請幫我解決問題。 感謝所有。

+1

似乎是當前的日期格式爲YYYY-MM-DD HH:MM:SS – Akhilrajtr

+0

我想'讓選項dateObj = dateFormatter.date(來源:dateString)'失敗,當你強迫展開'dateObj'你的代碼崩潰。 – Wukerplank

+0

我認爲你的dateString將是空的嘗試在這裏如果讓和檢查你的dateString是否爲空或不是你的代碼是好的。 –

回答

2

我認爲你的日期格式化程序是錯誤的,所以問題在那裏引發。

let dateString:String = (historyRequestArray[indexPath.row] as AnyObject).value(forKey: "date") as! String 
let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" //change formatter like this. 
let dateObj = dateFormatter.date(from: dateString) 
dateFormatter.dateFormat = "dd-MMM-yyyy" 
let finalDateStr:String = dateFormatter.string(from: dateObj!) 
+0

謝謝兄弟的幫助,現在它的工作.. –

+0

@ B.SaravanaKumar如果你發現答案有用,你可以接受它,所以其他用戶可以直接找到。 – Jaydeep

1

改變日期格式爲 「YYYY-MM-DD HH:MM:SS」

let dateString:String = (historyRequestArray[indexPath.row] as AnyObject).value(forKey: "date") as! String 
let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" 
let dateObj = dateFormatter.date(from: dateString) 
dateFormatter.dateFormat = "dd-MMM-yyyy" 
let finalDateStr:String = dateFormatter.string(from: dateObj!) 
+0

謝謝你兄弟的幫助,現在它的工作.. –

1

一些的日期格式粘貼下面,在那裏你可以從 「HH」更改爲「 HH「幾個小時。 enter image description here

因此,如果您將您的代碼更改爲以下日期格式化程序將工作。

let dateString:String = (historyRequestArray[indexPath.row] as AnyObject).value(forKey: "date") as! String 
let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" 
let dateObj = dateFormatter.date(from: dateString) 
dateFormatter.dateFormat = "dd-MMM-yyyy" 
let finalDateStr:String = dateFormatter.string(from: dateObj!) 
+0

謝謝你兄弟的幫助。 –