首先,我使用一个 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
}
它给我的就是这个
当我解析我使用的 JSON 时;
decoder.dateDecodingStrategy = .iso8601
那么我做错了什么?
这就是我在代码中使用它的方式;
Text("Release Date: \(newDate.date(from: part.releaseDate) ?? Date.now)")
您错误地使用了日期格式化程序。
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