2016-11-07 57 views
1

由於NSDate代表「單個時間點,獨立於任何特定的日曆系統或時區」,是否可以使用像timeIntervalSince1970這樣的方法進行秒的直接計算?可以用NSDate timeIntervalSince1970產生的秒來操作嗎?

我的意思是像添加操作和減去兩個NSTimeInterval(又名double)值的,而不是使用dateByAddingTimeInterval:NSCalendar或方法等- (nullable NSDate *)dateByAddingComponents:(NSDateComponents *)comps toDate:(NSDate *)date options:(NSCalendarOptions)opts

什麼問題會有這樣的直接計算?

+1

在大多數情況下使用'NSDateComponents'可能會更好,因爲例如,因爲有日節能燈,如果今天是2PM,明天下午2PM可能不在24小時,但23或25. – Larme

+1

沒有看到你有什麼具體的例子,總是最好使用'dateByAddingComponents'。但可能會出現直接使用秒數的情況。但不知道你真正想做什麼,唯一安全的建議是使用'dateByAddingComponents'。 – rmaddy

回答

1

添加可能會減少意義,但如果要查找兩個日期之間的時間差異,減法確實有意義。

要注意什麼,然而,就是你應該只去了幾秒鐘,幾分鐘,幾小時,幾天,幾周差從減法

但要找到在幾個月甚至幾年的區別,你會想使用NSDate API。月和年不是恆定的

與添加日期類似,如果您想添加秒,分鐘,小時,天,星期。這些都是不變的,很容易添加。但是幾個月和幾年會讓你興奮起來

+0

每天一年有23或25個小時。時不時會有閏秒。幾分鐘,幾小時,幾天和幾周不是恆定的。 – Willeke

+0

你是說如果你有一個NSDate for'now',並且將來24小時,然後減去這兩個,你可能會得到一個大於24 * 60 * 60 * 1000的數字,如果一個閏秒在?我不知道他們將不會如何不變? –

+0

我不知道閏秒,但我確定23和25小時。 – Willeke

相關問題