如何将日期格式从dd / MM / YYYY转换为YYYY-MM-dd in swift

我厌倦了从2016年7月 21日到2 016-07-21,2015-12-20的这个日期
这是我试过的代码

let inputFormatter = NSDateFormatter() inputFormatter.dateFormat = "MM/dd/YYYY" let outputFormatter = NSDateFormatter() outputFormatter.dateFormat = "YYYY-MM-dd" let showDate = inputFormatter.dateFromString("07/21/2016") let resultString = outputFormatter.stringFromDate(showDate!) print(resultString) 

如何转换?
谢谢

首先使用yyyy更改year格式化程序,而不是使用两个NSDateFormatter只使用这样的一个

 let inputFormatter = NSDateFormatter() inputFormatter.dateFormat = "MM/dd/yyyy" let showDate = inputFormatter.dateFromString("07/21/2016") inputFormatter.dateFormat = "yyyy-MM-dd" let resultString = inputFormatter.stringFromDate(showDate!) print(resultString) 

对于swift3

 func convertDateFormater(_ date: String) -> String { let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss z" let date = dateFormatter.date(from: date) dateFormatter.dateFormat = "yyyy-MM-dd" return dateFormatter.string(from: date!) } 

您可以定义如下所示的函数:

 // input string should always be in format "21/07/2016" ("dd/MM/yyyy") func formattedDateFromString(dateString: String, withFormat format: String) -> String? { let inputFormatter = NSDateFormatter() inputFormatter.dateFormat = "dd/MM/yyyy" if let date = inputFormatter.dateFromString(dateString) { let outputFormatter = NSDateFormatter() outputFormatter.dateFormat = format return outputFormatter.stringFromDate(date) } return nil } 

您可以使用上面的内容传递日期字符串的输出格式。 输入格式将始终为dd / MM / yyyy。 然后你按如下方式使用它:

 let stringA = formattedDateFromString("21/07/2016", withFormat: "yyyy-MM-dd") let stringB = formattedDateFromString("21/07/2016", withFormat: "MMM dd, yyyy") NSLog("stringA: \(stringA)") // 2016-07-21 NSLog("stringB: \(stringB)") // Jul 21, 2016