无法仅从 swift 中的 JSON 日期字符串获取日期

Unable to get only date from JSON date string in swift

JSON 如下所示

"user": {
        "id": 160,
        "date": "2021-04-13 16:30:06",

现在我只需要在标签中显示日期,如果我像下面这样添加..我得到了总字符串

 self?.dateLabel.text = user?["date"] as? String

o/p: 2021-04-13 16:30:06

我自己只需要2021-04-13吗?dateLabel.text

所以我试过了

var dateString = user?["date"] as? String
var dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let date = dateFormatter.date(from: dateString!)
 print(date)

o/p:得到零

如何在标签中仅显示 JSON 日期字符串中的日期。请帮忙

您需要使用 DateFormatter 才能从字符串中获取 Date 对象。为此,您需要一个与此字符串匹配的日期格式,如下所示:

var dateString = "2021-04-13 16:30:06"
var dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let date = dateFormatter.date(from: dateString)

之后,您需要将DateFormatter修改为您想要显示的日期格式:

if let date = date {
    dateFormatter.dateFormat = "yyyy-MM-dd"
    let displayText = dateFormatter.string(from: date)
    print(displayText)
}

当然,您通常需要知道此日期在 JSON 中表示的时区,否则您最终会得到错误的日期。

要在 DateFormatter 中设置时区,请使用 timeZone 属性。例如设置 GMT 时区:

dateFormatter.timeZone = TimeZone(secondsFromGMT: 0)