J'apprends Swift et je suis frappé en convertissant la date String en NSDate en chaîne. Je reçois la chaîne de date dans ce format "Jeu, 22 octobre 2015 07:45:17 +0000". Je dois afficher la date au format MM-jj-aaaa. J'ai essayé le code suivant mais, il retourne "null".
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle
let dateObj = dateFormatter.dateFromString(dateString!)
print("Dateobj: \(dateObj)")
Quelqu'un peut-il s'il vous plaît aider où je vais mal? Dans l'attente de l'aide. Merci d'avance.
Tout d’abord, vous devez convertir votre chaîne en NSDate avec son format. Ensuite, vous changez le dateFormatter
en votre format simple et le reconvertissez en une chaîne.
Swift
let dateString = "Thu, 22 Oct 2015 07:45:17 +0000"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEE, dd MMM yyyy hh:mm:ss +zzzz"
dateFormatter.locale = Locale.init(identifier: "en_GB")
let dateObj = dateFormatter.date(from: dateString)
dateFormatter.dateFormat = "MM-dd-yyyy"
print("Dateobj: \(dateFormatter.string(from: dateObj!))")
Le résultat imprimé est: Dateobj: 10-22-2015
//String to Date Convert
var dateString = "2014-01-12"
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let s = dateFormatter.dateFromString(dateString)
println(s)
//CONVERT FROM NSDate to String
let date = NSDate()
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
var dateString = dateFormatter.stringFromDate(date)
println(dateString)
Swift 2 et moins
let date = NSDate()
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
var dateString = dateFormatter.stringFromDate(date)
println(dateString)
Et dans Swift 3 et supérieur, ceci s’écrit maintenant comme suit:
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
var dateString = dateFormatter.string(from: date)
Voir la réponse de Gary Makin. Et vous devez changer le format ou les données. Parce que les données que vous avez ne correspondent pas au format choisi. Par exemple, ce code fonctionne correctement:
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
let dateObj = dateFormatter.dateFromString("10 10 2001")
print("Dateobj: \(dateObj)")