2017-06-10 10 views
3

Ich versuche, einen Countdown im Format hh: mm: ss anzuzeigen, aber da ich nicht das Datum, sondern die dateComponents ausgabe, kann ich formatter.dateFormat nicht verwenden. Gibt es eine Möglichkeit, die dateComponents zu formatieren?Ist es möglich, dateComponent als hh: mm: ss zu formatieren?

Derzeit erhalte ich einen Ausgang, der wie folgt aussieht:

Stunde: 5, Minute: 12, An zweiter Stelle: 45

func nextEventCalculator() -> DateComponents { 
    let now = Date() 
    let calendar = Calendar.current 
    let components = DateComponents(calendar: calendar, hour: 12, minute: 15) // <- 12:15 pm 
    let nextEvent = calendar.nextDate(after: now, matching: components, matchingPolicy: .nextTime)! 

    let diff = calendar.dateComponents([.hour, .minute, .second], from: now, to: nextEvent) 
    dateCountdownLabel.text = "\(diff)" 
    return diff 
} 

Antwort

2

Verwendung DateComponentsFormatter mit einem unitsStyle von .positional:

let formatter = DateComponentsFormatter() 
formatter.unitsStyle = .positional 
dateCountdownLabel.text = formatter.string(from: diff) 
Verwandte Themen