【问题标题】:Xcode 11, swift. Dateformatter always return nil [duplicate]Xcode 11,迅速。 Dateformatter 总是返回 nil [重复]
【发布时间】:2020-02-03 22:37:12
【问题描述】:

在 Swift 中将值从 String 转换为 Date 时遇到问题。

它总是返回 nil。我做错了什么?

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let date = dateFormatter.date(from: "2019-05-03")

这是 Xcode 中调试器中发生的事情

【问题讨论】:

标签: swift date xcode11 dateformatter


【解决方案1】:

更新:

这似乎是 Xcode 中的一个错误。在viewDidLoad 中尝试您的代码并设置断点会导致日期的lldb 描述为nil,但它会正确打印出预期值。

您可以在此 SO post 上查看有关该错误的更多信息,感谢 OOPer 提供的链接。

目前此错误仍在 Xcode 11.2-beta 中发生


几点

使用.dateFormat 代替.format

使用正确的引号" 而不是,您还应该从日期格式字符串中删除空格。

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let date = dateFormatter.date(from: "2019-05-03")

【讨论】:

  • 对不起,我在描述中写了不正确的代码。我总是像你一样悲伤,它是零。
  • 以上代码编译通过,不为nil l。所以一定是你正在做的其他事情导致它为零。
  • i.stack.imgur.com/dvdJB.png 我也是这样做的。这可能是 Xcode 11 中的错误吗?
  • 是的,我认为这是 Xcode 中的错误。然而,它似乎只有调试器的描述。
  • 这是 Xcode 11 的一个已知错误。检查this thread
【解决方案2】:

它没有nil 值。使用.dateFormat 而不是.format 就这么简单:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let date = dateFormatter.date(from: "2019-05-03")

// Optional(2019-05-02 23:00:00 +0000)

【讨论】:

  • 对不起,我在描述中写了不正确的代码。我总是像你一样悲伤,它是零。
猜你喜欢
  • 2020-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-28
  • 2015-03-05
  • 2014-08-25
  • 2016-05-17
  • 1970-01-01
相关资源
最近更新 更多