问题描述
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)