从没有定界符的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 AM”,但是应为“ Dec 11 0987”
另一个例子:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MMddyyyy"
dateFormatter.date(from: "1131987") // "Jan 13, 1987 at 12:00 AM"
这应该返回nil,因为11月31日是无效日期
请提出任何解决方案
答案 0 :(得分:0)
您必须将日期格式从onListenerConnected()
更新为ddMMyyyy
。
您的代码:-
MMddyyyy
新代码:-
dateFormatter.dateFormat = "ddMMyyyy"
此外,您必须将年份数字设置为4位,而不是3位。
您的代码:-
dateFormatter.dateFormat = "MMddyyyy"
新代码:-
dateFormatter.date(from: "1112987")
如果遇到任何问题,请发表您的回复。