Прежде всего, я использую API, где дата возвращается мне в виде строки и возвращается мне в формате гггг-ММ-дд, поэтому я хочу получить 4 сентября 2024 года, и мне удалось это сделать, но я могу Не исключайте время из даты.
Мой код 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:)
назначает дату, а вам нужна строка.
я хочу получить 4 сентября 2024 года
Ваш код, хотя сам по себе довольно неправильный, работает правильно, если вы измените date(from:)
на string(from:)
и исправите форматтер, если входные данные являются датой:
var newDate:DateFormatter {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "d MMMM yyyy"
return dateFormatter
}
print("Release Date: \(newDate.string(from: Date.now))")
Результат:
Release Date: 4 September 2024
Возможно, вам понадобятся два средства форматирования: один для преобразования данных, поступающих из API, в дату, а другой (этот) для преобразования этой даты в строку для представления. Но вы показали недостаточно кода, чтобы я мог это понять.