Mam do czynienia z problemem, gdy DateComponentsFormatter
zwraca nieoczekiwaną liczbę jednostek. Czy ktoś zmierzył się z tym samym problemem?DateComponentsFormatter zwraca niepoprawną liczbę jednostek jednostkowych
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
Spodziewam się otrzymać "2 tygodnie", ale mam "2 tygodnie 1 dzień".
Dlaczego używasz '14.7'? – shallowThought
@shallowThought Ustawiłem 'maximumUnitCount' - formater nie powinien zwracać więcej niż jedną jednostkę. –
FYI - Używanie 'Date (timeIntervalSinceNow: -14.7 * 24 * 60 * 60)' jest okropnym sposobem na zrobienie matematyki daty. Nie każdy dzień ma 24 godziny. Nie każda godzina ma 3600 sekund. Użyj jednej z metod 'Data kalendarza (dodając ...)'. – rmaddy