2016-06-16 4 views
1

У меня есть String что "Jueves 14 Junio 1990": это дата отформатирована в es_MX местности, я хочу, чтобы преобразовать его в новую строку с en_US в качестве языка.переформатирование локализованы строки даты в другую местность

Это мой код:

let myString:String = "Jueves 14 Junio 1990" 

let dateFormatter = NSDateFormatter() 
dateFormatter.locale = NSLocale(localeIdentifier: "en_US") 
dateFormatter.dateFormat = "EEEE dd MMMM yyyy" 
let finalDate:NSDate = dateFormatter.dateFromString(myString)! 
let finalString = dateFormatter.stringFromDate(date) 

Я ждал, что finalString привел в качестве Thursday 14 June 1990.

Проблема в том, что finalDate is nil.

Является ли мой код неправильным? Как я могу это достичь?

ответ

4

Вы должны использовать es_MX локаль первый преобразовать строку в NSDate:

let string = "Jueves 10 Junio 1990" 
let formatter = NSDateFormatter() 
formatter.dateFormat = "EEEE dd MMMM yyyy" 
formatter.locale = NSLocale(localeIdentifier: "es_MX") 
if let date = formatter.dateFromString(string) { 
    formatter.locale = NSLocale(localeIdentifier: "en_US") 
    let dateString = formatter.stringFromDate(date) 
} 
+0

хотя это прямо сейчас печатает воскресенье, так что я предполагаю, что 10 июня 1990 это воскресенье – riadhluke

+0

Вы совершенно правы, спасибо решение! Просто понимаю, что я ошибся 10, это было на самом деле 14. –

Смежные вопросы