Je suis fatigué de passer du 21/07/2016 au 2 16-07-21 mais j'ai eu cette date 2015-12-2
Voici le code que j'ai essayé
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)
Comment convertir?
Je vous remercie
Modifiez d'abord votre year
formateur avec yyyy
et au lieu d'utiliser deux NSDateFormatter
utilisez un seul comme celui-ci
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)
Pour Swift
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!)
}
Vous pouvez définir une fonction comme celle ci-dessous:
// 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
}
Vous pouvez utiliser ce qui précède pour passer un format de sortie pour votre chaîne de date. Le format d'entrée sera toujours jj/mm/aaaa. Ensuite, vous l'utilisez comme suit:
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