Существует существующий тип Date
, который вы, вероятно, должны использовать вместо вашего собственного типа.
Чтобы создать объект Date
из форматированной строки, используйте DateFormatter
:
let inputDateString = "20200428"
let inputFormatter = DateFormatter()
inputFormatter.dateFormat = "yyyyMMdd"
inputFormatter.locale = Locale(identifier: "en_US_POSIX")
// date is optional
let date = inputFormatter.date(from: inputDateString)
Если у вас есть объект Date
, вы можете вывести его в любом формате:
let outputFormatter = DateFormatter()
// 28 April, 2020
outputFormatter.dateFormat = "dd MMMM, yyyy"
Или, лучше, использовать способ с учетом локали:
let outputFormatter = DateFormatter()
outputFormatter.dateStyle = .long
outputFormatter.timeStyle = .none
Затем вы можете преобразовать его в строку:
let outputDateString = outputFormatter.string(from: date!) // ! for simplicity
print(outputDateString)