我试图将此字符串转换为NSDate, 它适用于USA Location,但是当我改为巴西时。 Bumm,它崩溃了! 我应该使用哪种格式字符串?
这是我的代码:
static func textToDatedateString: String) -> NSDate {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss+00:00"
let date = dateFormatter.dateFromString(dateString)!
return date
}
答案 0 :(得分:0)
您忽略了字符串的时区信息。这样,您将时间作为实际为UTC +00:00的本地时间输入。此外,您强制解开字符串,如果您输入无效的字符串日期,它会使您的应用程序崩溃。试试这样:
func textToDate(dateString: String) -> NSDate? {
let dateFormatter = NSDateFormatter()
dateFormatter.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierISO8601)!
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssxxx"
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
return dateFormatter.dateFromString(dateString)
}
if let dateFromString = textToDate("2016-09-23T23:06:00+00:00") {
print(dateFromString) // "2016-09-23 23:06:00 +0000"
}