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

问题描述 投票:-2回答:1

从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日是无效日期

请建议任何解决方案

ios swift date-formatting
1个回答
0
投票

您必须将日期格式从ddMMyyyy更新为MMddyyyy

你的代码: - dateFormatter.dateFormat = "ddMMyyyy"

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

此外,您必须设置4位数而不是3位数。

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

新代码: - dateFormatter.date(from: "11120987"

如果您在回复后发现任何问题。

© www.soinside.com 2019 - 2024. All rights reserved.