I've faced issue, when DateComponentsFormatter returns unexpected number of units. Does anyone faced same issue?
import Foundation
let formatter = DateComponentsFormatter()
formatter.unitsStyle = .full;
formatter.maximumUnitCount = 1;
let date = Date(timeIntervalSinceNow: -14.7 * 24 * 60 * 60)
let dateString = formatter.string(from: date, to: Date()) // 2 weeks 1 day
I expect to receive "2 weeks", but have "2 weeks 1 day".
You are passing -14.7 which is rounded of as -15. So you are getting 2 weeks 1 day. So round the number properly to get expected results.