如何消除日期中的时间

问题描述 投票:0回答:1

首先,我使用一个 API,其中日期以字符串形式返回给我,并以 yyyy-MM-dd 的格式返回给我,所以我想要得到的是 2024 年 9 月 4 日,我设法做到了,但我无法消除超出日期的时间。

我的 DateFormatter 代码是;

var newDate:DateFormatter {
    
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "dd.MM.yy"
    dateFormatter.dateStyle = .short
    dateFormatter.timeStyle = .none
    
    return dateFormatter
}

它给我的就是这个

enter image description here

当我解析我使用的 JSON 时;

decoder.dateDecodingStrategy = .iso8601

那么我做错了什么?

这就是我在代码中使用它的方式;

Text("Release Date: \(newDate.date(from: part.releaseDate) ?? Date.now)")
json swift api date swiftui
1个回答
0
投票

您错误地使用了日期格式化程序。

date(from:)
生成一个 date,而你想要的是一个字符串。您的代码虽然本身非常不正确,但如果您将
date(from:)
更改为
string(from:)
:

,则可以正常工作
var newDate:DateFormatter {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "dd.MM.yy"
    dateFormatter.dateStyle = .short
    dateFormatter.timeStyle = .none
    return dateFormatter
}

print("Release Date: \(newDate.string(from: Date.now))")

结果:

Release Date: 04/09/2024
© www.soinside.com 2019 - 2024. All rights reserved.