仅在iPhone上的dateFormatter dateFromString错误

时间:2015-10-24 05:14:49

标签: ios iphone swift date swift2

运行以下代码时

 let dateFormatter = NSDateFormatter()
 dateFormatter.dateFormat = "MM/dd/yyyy h:mm:ss a"

 let a:String = "10/24/2015 12:00:00 PM"
 let b:NSDate? = dateFormatter.dateFromString(a)
模拟器b上的

在Simulator上按正常值转换为NSDate 在iPhone /物理设备上,b是零...

如何在物理设备上获得正确的结果?这是IOS错误还是日历相关问题?

3 个答案:

答案 0 :(得分:2)

以下修正了问题(谢谢RyanTCB):

 let dateFormatter = NSDateFormatter()
 dateFormatter.dateFormat = "MM/dd/yyyy h:mm:ss a"
 dateFormatter.locale = NSLocale(localeIdentifier: "en_US")

 let a:String = "10/24/2015 12:00:00 PM"
 let b:NSDate? = dateFormatter.dateFromString(a)

答案 1 :(得分:1)

为了使用不同格式化程序覆盖基础的好处

我建议使用dateFormatter.locale = NSLocale(localeIdentifier:“en_US”)。这可确保用户设备上的日期被强制适合您的日期格式化程序。如果用户使用格式化程序无法处理的24小时格式,则使用区域设置可能会导致崩溃。

如果您的格式化程序使用24小时的HH而不是12小时使用的小时 dateFormatter.locale = NSLocale(localeIdentifier:“en_GB”)

答案 2 :(得分:0)

在日期格式化程序上设置区域设置:

dateFormatter.locale = NSLocale(localeIdentifier: "en_US")