Voici mon code:
let currentDate = NSDate()
let usDateFormat = NSDateFormatter()
usDateFormat.dateFormat = NSDateFormatter.dateFormatFromTemplate("d MMMM y", options: 0, locale: NSLocale(localeIdentifier: "en-US"))
cmt.date = usDateFormat.stringFromDate(currentDate)
Je m'attendais à obtenir le "15 octobre 2015", mais j'ai obtenu le "15 octobre 2015". Le mois est en langue suédoise.
Qu'est ce que j'ai mal fait? Les paramètres régionaux et le format sont incorrects.
Essaye ça:
let dateString = "2015-10-15"
let formater = NSDateFormatter()
formater.dateFormat = "yyyy-MM-dd"
print(dateString)
formater.locale = NSLocale(localeIdentifier: "en_US_POSIX")
let date = formater.dateFromString(dateString)
print(date)
Swift 3 Xcode 8
let dateString = "2015-10-15"
let formater = DateFormatter()
formater.dateFormat = "yyyy-MM-dd"
print(dateString)
formater.locale = Locale(identifier: "en_US_POSIX")
let date = formater.date(from: dateString)
print(date!)
J'espère que ça aide.
Consultez la documentation de dateFormatFromTemplate
. Il déclare que:
Valeur de retour
Chaîne de format de date localisée représentant les composants de format de date donnés dans le modèle, organisés de manière appropriée pour les paramètres régionaux spécifiés par les paramètres régionaux.
La chaîne renvoyée peut ne pas contenir exactement les composants donnés dans le modèle, mais peut, par exemple, appliquer des ajustements spécifiques aux paramètres régionaux.
C'est donc le problème de l'arrangement et de la langue. Pour obtenir la date que vous recherchez, vous devez définir le dateFormat
et locale
du formateur de date comme suit:
let currentDate = NSDate()
let usDateFormat = NSDateFormatter()
usDateFormat.dateFormat = "d MMMM y"
usDateFormat.locale = NSLocale(localeIdentifier: "en_US")
cmt.date = usDateFormat.stringFromDate(currentDate)
Mieux Swift 3/3.1 solution:
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US")
essayez ce code
let locale1:Locale = NSLocale(localeIdentifier: "en_US") as Locale
var date = Date().description(with: locale1)
print(date)
// Lundi 3 avril 2017 ...