首页 > 解决方案 > Swift:日期无法解析“yyyy-MM-dd'T'HH:mm:ss”字符串

问题描述

我目前正在尝试调用 Api,然后它会返回一些信息以及更改日期。之后我想以“dd.MM.yyyy”格式显示日期。我从 Api 获得的日期如下所示:“2020-03-20T19:30:00”。因此,我在这个问题中使用了解决方案:How to get time from YYYY-MM-dd'T'HH:mm:ss.sssZ使其看起来像我想要的格式。

不幸的是,当我尝试解析从 Api 获得的日期时,我总是得到一个 nil 值。

我写的代码如下:

let inputFormatter : DateFormatter = DateFormatter()
inputFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
let dateFormatter : DateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd.MM.yyyy"

//date is always nil 
let date = inputFormatter.date(from: content?.DateTime ?? "2020-03-20T19:30:00")

dateLabel.text = dateFormatter.string(from: date ?? Date())

有人知道为什么我总是得到 nil 值,以及我转换日期的方式是好还是坏?

标签: swiftdate

解决方案


@Leo Dabus 给出了很好的分数。有趣的是,我已经使用字符串“2020-03-20T19:30:00”在操场上测试了您的代码,即使没有设置语言环境,它也能完美运行。我觉得有些不对劲content?.DateTime。您可能应该使用的示例代码:

`

let dateFormatter : DateFormatter = DateFormatter()
let locale = Locale(identifier: "en_US_POSIX")

dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
dateFormatter.locale = locale

guard let date = dateFormatter.date(from: "2020-03-20T19:30:00") else {
  fatalError("Could not create date")
}
print(date)

`


推荐阅读