swift - Convertir une Chaîne de caractères à une Date et ensuite à une Chaîne de caractères dans un format différent

Supposons que j'ai une simple Chaîne de caractères, extraites à partir d'un tableau de chaînes de caractères (représentant les dates) -

var myDateString = "2015-11-25 04:31:32.0"

Maintenant, je veux le convertir en chaîne qui ressemble à Nov 25, 2015.

Pour cela, je suppose que j'ai besoin d' -

  • obtenir un NSDate objet date de chaîne à l'aide de NSDateFormatter
  • obtenir une chaîne de caractères à partir de cet objet NSDate par l'utilisation de certaines fonctionnalités (que j'ai pu trouver)

J'ai essayé dans ce terrain de jeu, mais ont été incapables de résoudre un problème simple.

Voici ce que j'ai essayé -

Line 1| var dateFormatter = NSDateFormatter()
Line 2| dateFormatter.locale = NSLocale.currentLocale()
Line 3| dateFormatter.dateFormat = "YYYY-MM-dd HH:mm:ss.A"
Line 4| let somedate = dateFormatter.dateFromString(str)
Line 5| let somedateString = dateFormatter.stringFromDate(somedate!)

Dans la barre latérale de Xcode, ligne 4 tirages "Nov 25, 2015, 12:00 AM", mais lorsque j'essaie d'imprimer une chaîne de somedate, je reçois "2015-11-25 00:00:00.0".

Je n'ai pas trouvé une seule explication correcte de NSDates n'importe où.

C'était tellement plus facile en Java avec parse() et format() fonctions pour les Dates.

"je n'ai pas trouvé une seule explication correcte de NSDates n'importe où." – Il y a un mise en forme des Données Guide de l' avec un lien vers le Unicode date de spécification de format. La première erreur est que le format d'années est "aaaa", pas "AAAA". Aussi, vous devez deux différents formateurs pour la conversion, l'un pour dateFromString et l'autre pour stringFromDate.
... et AAAA au lieu de yyyy est la cause d'un bon rire à chaque année autour de, le 1er janvier, quand tout le monde billets comment leurs dates sont cassés.

OriginalL'auteur Kunal Chawla | 2016-01-16