如何将日期 yyyy-mm-dd'T'HH:mm:ss.SSSZ 转换为 swift

How to convert date yyyy-mm-dd'T'HH:mm:ss.SSSZ in swift

我将日期从 "yyyy-mm-dd'T'HH:mm:ss.SSSZ" 转换为 "dd-mm-yyyy" 我的日期是 “2018-09-11T09:53:25.000+0000” 这是我的代码

let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-mm-dd'T'HH:mm:ss.SSSZ"

let dateFromInputString = dateFormatter.date(from: "2018-09-11T09:53:25.000+0000")

dateFormatter.dateFormat = "dd-mm-yyyy"

if(dateFromInputString != nil){
   return dateFormatter.string(from: dateFromInputString!)
}
else{
   debugPrint("could not convert date")
   return "N/A"
}

但我正在转换日期 11-23-2018 像这样

但是我的相位是11-09-2018

您的 dateFormat 错误。当您将 'mm' 用于 个月和分钟时,您的格式中的歧义应该已经很清楚了。

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

毫米 - 分钟

MM - 月

第二种日期格式也是如此。


有关日期格式的详细信息,请参阅 this

应该是

dateFormatter.dateFormat = "dd-MM-yyyy"

试一试

你的 dateFormater 是错误的应该是 yyyy-MM-dd'T'HH:mm:ss.SSSZ 不是这个 yyyy-mm-dd'T'HH:mm:ss.SSSZ

dateFormatter.dateFormat = "dd-mm-yyyy"

dateFormatter.dateFormat = "dd-MM-yyyy"

试试这个:

   extension String {

        func convertDate() -> String {
            let dateFormatter = DateFormatter()
            dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"

            if let dateInLocal = dateFormatter.date(from: self) {
                dateFormatter.dateFormat = "dd-MM-yyyy"
                return dateFormatter.string(from: dateInLocal)
            }
            return "NA"
        }

    }

试试这个

 func GetFormatedDate(date_string:String,dateFormat:String)-> String{

    let dateFormatter = DateFormatter()
    dateFormatter.locale = Locale(identifier: "en_US_POSIX")
    dateFormatter.dateFormat = dateFormat

    let dateFromInputString = dateFormatter.date(from: date_string)
    dateFormatter.dateFormat = "dd-MM-yyyy" // Here you can use any dateformate for output date
    if(dateFromInputString != nil){
        return dateFormatter.string(from: dateFromInputString!)
    }
    else{
        debugPrint("could not convert date")
        return "N/A"
    }
}

像这样使用:

self.GetFormatedDate(date_string: "2018-09-11T09:53:25.000+0000", dateFormat: "yyyy-MM-dd'T'HH:mm:ss.SSSZ")

输出:

11-09-2018
let dateFormatter = DateFormatter()
 dateFormatter.locale = Locale(identifier: "en_US_POSIX")
 dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"

 let dateFromInputString = dateFormatter.date(from: "2018-09-11T09:53:25.000+0000")

 dateFormatter.dateFormat = "dd-MM-yyyy"

 if(dateFromInputString != nil){
     return dateFormatter.string(from: dateFromInputString!)
 }
 else{
     debugPrint("could not convert date")
     return "N/A"
 }