2009-09-15 63 views
7

我有2個數組,其中包含時間值。它們的格式如下。毫米:秒:數百秒。我想獲得數組中兩個[lastObjects]之間的區別。 NSDate不工作,因爲最後一個值是百分之一秒。如何在iPhone中獲取時差

一個問題。如果第二個日期比第一個日期大,它會給我一個負數 - 例如-01:10:00?

+0

沒有它不會爲我工作。 –

+0

你不應該把答案複製到你的問題中。如果答案需要澄清,您對答案發表評論,答案的作者將回復。 我給你的解決方案應該足以讓你指向正確的方向。 NSDateFormatter的文檔將告訴你關於解析時間的所有知識,NSDate的文檔將告訴你需要了解的有關找出時間差異的所有信息,包括相同日期和負時間間隔的行爲。 –

+0

哎呀,這已經足夠了。我很抱歉沒有遵守協議。 –

回答

36

你的問題有兩個部分,解析時間和獲得的區別:

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應該爲你工作,使用timeIntervalSinceDate:,它返回一個毫秒精度的時間間隔。

+1

其實它是亞毫秒的精度。但是,它在SECONDS中表示。 – DanM