-2

我将日期从“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

4

6 回答 6

6

dateFormat当您在月份和分钟中使用“mm”时,格式中的歧义应该已经很清楚了。

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

毫米 - 分钟

MM - 月

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


有关日期格式的更多信息,请参阅此内容。

于 2018-09-11T11:43:58.330 回答
3

尝试这个

 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
于 2018-09-11T11:48:55.210 回答
1

应该

dateFormatter.dateFormat = "dd-MM-yyyy"

试试看

于 2018-09-11T11:44:32.660 回答
1

你的 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"

于 2018-09-11T11:47:38.593 回答
1

尝试这个:

   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"
        }

    }
于 2018-09-11T11:48:53.407 回答
1
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"
 }
于 2018-09-11T11:54:27.383 回答