2015-06-22 75 views
0

以下代码在模拟器上工作,但不在设备上。 我试图用xx替换Z而没有运气。 任何帮助表示赞赏。SWIFT:将字符串从XLM转换为NSDate

谢谢。

func convertDateStringToNSDate(dateString: String) -> NSDate { 
     var dateFormatter = NSDateFormatter() 
     // Sat, 20 Jun 2015 16:50:20 +0200 

     dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss xx" 
     let date: NSDate = dateFormatter.dateFromString(dateString) 
     return date 

    } 

回答

0

如果你有固定格式的日期时,您应首先设定日期格式的区域设置为适合您的固定格式的东西。在大多数情况下,要选择的最佳语言环境是en_US_POSIX,该语言环境专门设计用于在不考虑用户和系统偏好的情况下生成美国英语结果。 en_US_POSIX在时间上也是不变的(如果美国在将来的某个时候改变它的格式化日期,en_US将会改变以反映新的行为,但是en_US_POSIX不会),并且在平台之间(en_US_POSIX在iPhone上的工作方式相同OS,就像它在OS X上做的一样,就像它在其他平台上一样)。

// Setting the locale to POSIX ensures that 
// the user's locale won't be used 
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") 
+0

非常感谢您的解释和代码! –