Wenn ich ein NSTimeInterval habe, das auf 200.0 eingestellt ist, gibt es eine Möglichkeit, dies in 00:03:20 umzuwandeln. Ich dachte, ich könnte ein NSDate damit initialisieren und dann NSDateFormatter mit HH: mm: ss verwenden. Meine Frage ist, gibt es einen schnellen Weg, dies zu tun, oder muss ich die Nummer selbst auflösen und verwenden [NSString stringWithFormat: %02d:%02d:%02d, myHour, myMin, mySec]
?
iphone
objective-c
cocoa-touch
Fuzzygoat
quelle
quelle
NSDateComponentsFormatter().stringFromTimeInterval(NSTimeInterval(duration))
in SwiftVerwenden Sie unter iOS 8
NSDateComponentsFormatter
.gibt "3:20" aus.
gibt "0:03:20" aus.
quelle
Swift 3- Version der Antwort von onmyway133 :
quelle
zeroFormattingBehavior
zu sein ,[.dropLeading, .pad]
könnte sein , eine bessere (weniger Code) Option.Einige zusätzliche Codezeilen, aber ich bin der Meinung, dass die Verwendung von NSDateComponents einen genaueren Wert ergibt.
quelle
In Swift 2 , iOS 8+ . Dies stellt sicher, dass wir die Stunde nur bei Bedarf anzeigen
Also hast du
quelle
quelle
Swift 4
Ex:
quelle
Um den Vorschlag von Matthias Bauch zu "erweitern", würde ich dies in Swift zu einer berechneten Eigenschaft von NSTimeInterval machen:
Dies hat den Vorteil, dass es an den
NSTimeInterval
Typ gebunden ist , nicht an Ihren View Controller oder an einen anderen Ort, an dem Sie diese Funktion einsetzen. Um zu verwenden, würden Sie etwas gehen wie:quelle
Basierend auf der Antwort von @ onmyway133 ist hier die Swift 4-Version:
quelle
direkt aus Apple Docs: in h Datei:
in m Datei
Wenn Sie Ihren NSTimeInterval timeInterval in einen hh: mm: ss-String konvertieren möchten, gehen Sie folgendermaßen vor:
quelle
Ich denke, der Timer-Anteil sollte begrenzt werden. Da Matthias 'Code dieses Problem in Sekundenschnelle verursachte, verwende ich Folgendes, das leicht von dem von Matthias geändert wurde
quelle
Ziel C- Version der Antwort von onmyway133
quelle