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:

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.

41
demandé sur Yuvaraj.M 2015-10-22 12:41:36

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

92
répondu t4nhpt 2017-11-14 02:22:28
//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)  
43
répondu Kishor Kumar Rawat 2018-06-23 23:37:49

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)
5
répondu brockk 2018-08-31 09:42:52

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)")
2
répondu Alexey Pichukov 2015-10-22 09:58:47