2009-09-15 13 views
7

J'ai 2 tableaux avec des valeurs de temps dedans. Ils sont dans le format suivant. mm: ss: des centaines de secondes Je veux obtenir la différence entre les deux [derniersObjets] dans les tableaux. NSDate ne fonctionne pas car la dernière valeur est en centième de seconde.Comment faire pour obtenir le décalage horaire dans l'iPhone

Une question. Si la deuxième date est plus grande que la première, cela me donnera un nombre négatif comme -01: 10: 00?

+0

pas cela ne fonctionne pas pour moi. –

+0

Vous n'êtes pas censé copier les réponses dans votre question. Si une réponse doit être clarifiée, vous commentez la réponse et l'auteur de la réponse répondra. La solution que je vous ai donnée devrait suffire à vous orienter dans la bonne direction. La documentation de NSDateFormatter vous dira tout ce que vous devez savoir sur les temps d'analyse, et la documentation de NSDate vous dira tout ce que vous devez savoir pour trouver la différence entre les temps, y compris le comportement des dates identiques et des intervalles de temps négatifs. –

+0

Oups, c'était plus que suffisant. Je m'excuse de ne pas suivre le protocole. –

Répondre

36

Votre problème comporte deux parties, l'analyse du temps et obtenir la différence:

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 = [secondDate timeIntervalSinceDate: firstDate]; –

1

NSDate devrait fonctionner pour vous, utilisez timeIntervalSinceDate:, qui renvoie un intervalle de temps qui a la précision de la milliseconde.

+1

En fait, c'est une précision inférieure à la milliseconde. Cependant, il est représenté dans SECONDS. – DanM