没有分隔符(/或-)从DateFormatter获取日期返回错误的日期:

时间:2019-01-17 07:21:26

标签: ios swift date-formatting

从没有定界符的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日是无效日期

请提出任何解决方案

1 个答案:

答案 0 :(得分:0)

您必须将日期格式从onListenerConnected()更新为ddMMyyyy

您的代码:- MMddyyyy

新代码:- dateFormatter.dateFormat = "ddMMyyyy"

此外,您必须将年份数字设置为4位,而不是3位。

您的代码:- dateFormatter.dateFormat = "MMddyyyy"

新代码:- dateFormatter.date(from: "1112987")

如果遇到任何问题,请发表您的回复。