0

在代码中,我试图从旧格式更改新的日期格式,但无法做到这一点,它会崩溃并显示“致命错误:在展开可选值时意外发现 nil ”但我找不到原因,请帮助找出原因。

在这里,我给出了我尝试过的代码..

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-08-02 14:09:22

现在当前格式为:“yyyy-MM-dd hh:mm:ss”

但我想转换为:“dd-MMM-yyyy”

请帮我解决问题。谢谢大家。

4

3 回答 3

3

我认为您的日期格式化程序是错误的,所以那里提出了问题。

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!)
于 2017-08-03T12:08:46.190 回答
2

将日期格式更改为“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!)
于 2017-08-03T12:09:54.880 回答
1

下面粘贴了一些日期格式,您可以在其中将“hh”更改为“HH”几个小时。 在此处输入图像描述

因此,如果您将代码更改为以下代码,您的日期格式化程序将起作用。

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!)
于 2017-08-03T12:17:24.400 回答