如何转换日期 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 - 月

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


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

试试这个

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

应该是

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

最新更新