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错误还是日历相关问题?
答案 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")