字符串的日期转换没有发生

Date conversion from string not happening

我有一个 order_date 内的日期,格式为 May 31, 2018 at 3:35 PM

我正在将其转换为 Date,就像这样……

if let order_date = value["order_date"] as? String {

let dateFormatter = DateFormatter()

dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"

let date = dateFormatter.date(from: order_date)

}

但我得到的 date 为零。可能是什么问题..?

您的日期格式有误将您的格式更改为

dateFormatter.dateFormat = "MMMM dd, yyyy 'at' hh:mm a"

例如,如果您将月份设为 Mar,则使用 - MMM,如果您获得 March,则使用 - MMMM

您可以在 here

中查看日期格式

完整答案

 if let order_date = value["order_date"] as? String {

let dateFormatter = DateFormatter()
 dateFormatter.dateFormat = "MMMM dd, yyyy 'at' hh:mm a"
  var date = dateFormatter.date(from: order_date)
    if date == nil{
        dateFormatter.dateFormat =  "yyyy-MM-dd HH:mm:ss"
        date = dateFormatter.date(from: order_date)
    }
 dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
 let myStringafd = dateFormatter.string(from: date!)
 print(myStringafd)

}

对于详细的日期格式转换,您会得到

用以下代码替换您的代码:

if let order_date = value["order_date"] as? String
    {

        let dateFormatter = DateFormatter()

        dateFormatter.dateFormat = "MMM dd, yyyy 'at' hh:mm a"

        let date = dateFormatter.date(from: order_date)

    }