将本地化日期字符串重新格式化为另一个区域设置

Cha*_*ico 3 nsdateformatter date-formatting ios nslocale swift

我有一个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)
Run Code Online (Sandbox Code Playgroud)

我等待的finalString结果是Thursday 14 June 1990.

这里的问题finalDatenil.

我的代码错了吗?我怎样才能做到这一点?

ria*_*uke 7

您必须首先使用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)
}
Run Code Online (Sandbox Code Playgroud)