Я столкнулся с проблемой, когда DateComponentsFormatter
возвращает неожиданное количество единиц. Кто-нибудь сталкивался с такой же проблемой?DateComponentsFormatter возвращает неверное количество единиц измерения
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
Ожидаю получить «2 недели», но «2 недели 1 день».
Почему вы используете '14.7'? – shallowThought
@shallowThought Я установил 'maximumUnitCount' - форматтер не должен возвращать более одного блока. –
FYI - Использование 'Date (timeIntervalSinceNow: -14.7 * 24 * 60 * 60)' - ужасный способ сделать математику по дате. Не каждый день имеет 24 часа. Не каждый час имеет 3600 секунд. Используйте один из методов 'Calendar date (byAdding ...)'. – rmaddy