首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DateFormatter/ISO8601DateFormatter无法从字符串中获取日期

DateFormatter/ISO8601DateFormatter无法从字符串中获取日期
EN

Stack Overflow用户
提问于 2019-12-04 16:39:05
回答 2查看 1.1K关注 0票数 1

如何使用ISO8601DateFormatter将字符串转换为日期?

代码语言:javascript
复制
let iSO8601DateFormatter = ISO8601DateFormatter()
let string = iSO8601DateFormatter.string(from: Date()) //2019-12-04T08:23:27Z
let date = iSO8601DateFormatter.date(from: string)  //nil ?

上面的代码使用Xcode11.2.1在iPhone8模拟器中运行,我得到的结果是空的。

但它在同一个Xcode的Playground中工作。

有谁能帮我指出我的所作所为出了什么问题吗?

EN

回答 2

Stack Overflow用户

发布于 2019-12-08 10:31:40

这似乎是Xcode11和swift 5中的一个错误。日期实际上不是零,但在调试中,它显示为零。

代码语言:javascript
复制
let date = Date()
let formatter = ISO8601DateFormatter()
formatter.formatOptions = [.withInternetDateTime]
let dateString = formatter.string(from: date)
if let myDate = formatter.date(from: dateString){
      print(myDate) //2019-12-08 02:22:26 +0000
}

你可以在SO post上看到更多关于这个bug的信息

票数 2
EN

Stack Overflow用户

发布于 2019-12-04 18:27:32

您可以向NSDateFormatter指定iSO8601日期格式以获取日期:

代码语言:javascript
复制
  let dateFormatter = DateFormatter()
  dateFormatter.dateFormat = "yyyyMMdd'T'HHmmssZ"
  let date = dateFormatter.date(from: dateString)
  print(date) //2019-12-04 12:46:00 +0000

您可以在here.上检查日期格式的类型

我希望这能对你有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59171939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档