Comment convertir une chaîne de caractères en date en chaîne de caractères dans Swift iOS? [dupliquer]
cette question a déjà une réponse ici:
- Conversion NSString à NSDate (et retour) 17 réponses
je suis en train d'apprendre swift et je suis frappé en convertissant la chaîne de date en NSDate en chaîne. Suis à la date de l'obtention de la chaîne dans ce format "Thu, 22 Oct 2015 07:45:17 +0000". Je il faut indiquer la date dans le format MM-JJ-AAAA. J'ai essayé le code suivant mais, il renvoie "null".
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle
let dateObj = dateFormatter.dateFromString(dateString!)
print("Dateobj: (dateObj)")
quelqu'un Peut s'il vous plaît aider où vais mal? Hâte de l'aider. Merci à l'avance.
4 réponses
tout d'abord, vous devez convertir votre chaîne de caractères en NSDate avec son format. Ensuite, vous changez le dateFormatter
en votre format simple et le convertissez de nouveau en chaîne.
SWIFT 3
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 3:
let date = NSDate()
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
var dateString = dateFormatter.stringFromDate(date)
println(dateString)
et dans Swift 4 ce serait maintenant écrit comme:
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
var dateString = dateFormatter.string(from: date)
voir 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)")