Whilst updating a project that I haven't looked at in a while I've been removing the various Formatters in the project and replacing them with the newer formatted() method which overall seems to have been fairly simple. However there's one case where I'm pretty stuck:
let formatter = DateFormatter()
formatter.timeStyle = .short
formatter.dateStyle = .short
formatter.doesRelativeDateFormatting = true
I can get the equivalent style from formatted for distant dates:
let myStyle = Date.FormatStyle(date: .numeric, time: .shortened).year(.twoDigits)
let newYearsMidday = Calendar.current.date(from: DateComponents(year: 2023, month: 1, day: 1, hour: 12, minute: 0))!
formatter.string(from: newYearsMidday) // "1/1/23, 12:00 PM"
newYearsMidday.formatted(myStyle) // "1/1/23, 12:00 PM"
But I'm stumped about how to do it for closer dates that should use the relative date format:
formatter.string(from: .now) // "Today, 4:54 PM"
Date.now.formatted(myStyle) // "2/12/23, 4:54 PM"
Is this possible with the new API or does it require sticking with DateFormatter?