web-dev-qa-db-fra.com

Comment convertir chaîne en date en chaîne dans Swift iOS?

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.

48
Yuvaraj.M

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

103
t4nhpt
//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)  
46
Kishor Kumar Rawat

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)
8
brockk

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)")
4
Alexey Pichukov