从DateFormatter获取没有分隔符的日期会返回错误的日期,
根据我们的要求,我们不能在我们的日期格式化字符串中使用/或 - 。
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone.current
dateFormatter.timeZone = TimeZone(identifier: "UTC")
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.calendar = Calendar(identifier: .iso8601)
dateFormatter.dateFormat = "ddMMyyyy"
dateFormatter.date(from: "1112987")
这将返回“2987年11月1日上午8:00”,但它应该是“Dec 11 0987”
另一个例子:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MMddyyyy"
dateFormatter.date(from: "1131987") // "Jan 13, 1987 at 12:00 AM"
这应该返回nil,因为11月31日是无效日期
请建议任何解决方案
您必须将日期格式从ddMMyyyy
更新为MMddyyyy
。
你的代码: - dateFormatter.dateFormat = "ddMMyyyy"
新代码: - dateFormatter.dateFormat = "MMddyyyy"
此外,您必须设置4位数而不是3位数。
你的代码: - dateFormatter.date(from: "1112987")
新代码: - dateFormatter.date(from: "11120987"
如果您在回复后发现任何问题。