无法在 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

我只需要 self?.dateLabel.text 中的 2021-04-13

所以我试过了

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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...