2009-09-15 7 views
7

Ich habe 2 Arrays mit Zeitwerten drin. Sie haben folgendes Format. mm: ss: Hunderte von Sekunden. Ich möchte den Unterschied zwischen den beiden [lastObjects] in den Arrays erhalten. NSDate funktioniert nicht, da der letzte Wert in Hundertstelsekunden liegt.So erhalten Sie Zeitunterschied in iPhone

Eine Frage. Wenn das zweite Datum größer ist als das erste, gibt es mir eine negative Zahl wie -01: 10: 00?

+0

nein, es für mich nicht funktioniert. –

+0

Sie sollten keine Antworten in Ihre Frage kopieren. Wenn eine Antwort geklärt werden muss, kommentieren Sie die Antwort und der Autor der Antwort wird antworten. Die Lösung, die ich Ihnen gegeben habe, sollte ausreichen, um Sie in die richtige Richtung zu weisen. Die Dokumentation für NSDateFormatter gibt Ihnen alles, was Sie über die Analysezeiten wissen müssen, und die Dokumentation für NSDate gibt Ihnen alles, was Sie wissen müssen, um den Unterschied zwischen den Zeiten zu finden, einschließlich des Verhaltens von identischen Daten und negativen Zeitintervallen. –

+0

Hoppla, es war mehr als genug. Ich entschuldige mich dafür, dass ich das Protokoll nicht befolgt habe. –

Antwort

36

Ihr Problem hat zwei Teile, die Zeit, das Parsen und die Differenz bekommen:

NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]]; 
[dateFormatter setDateFormat:@"mm:ss:SS"]; 

NSDate* firstDate = [dateFormatter dateFromString:@"01:00:00"]; 
NSDate* secondDate = [dateFormatter dateFromString:@"01:02:00"]; 

NSTimeInterval timeDifference = [secondDate timeIntervalSinceDate:firstDate]; 
+2

NSTimeInterval interval = [SekundenDatum timeIntervalSinceDate: firstDate]; –

1

NSDate sollte für Sie arbeiten, verwenden Sie timeIntervalSinceDate:, die ein Zeitintervall zurückgibt, das Millisekundengenauigkeit hat.

+1

Tatsächlich ist es Präzision im Millisekundenbereich. Es wird jedoch in SEKUNDEN dargestellt. – DanM