2010-07-15 50 views
4

我還沒有在任何地方找到這個問題的答案,但這看起來像一個典型的問題:我有Objective-C的「NSDate時間戳」,看起來像「2010-07-14 16:30:41 +0200」 。 java時間戳只是一個長整數(例如:「976712400000」)。什麼是Objective-C等效於java時間戳?

所以,我的問題是:什麼是Objective-c相當於java時間戳?

在此先感謝您的幫助。

回答

4

您可以通過減去1970年1月1日的unix時間的起始日期,將NSDAte給出的格式轉換爲unix時間。NSTimeInterval只是兩個日期之間的差異,您可以通過秒數:

NSDate * past = [NSDate date]; 
NSTimeInterval oldTime = [past timeIntervalSinceDate:[NSDate dateWithNaturalLanguageString:@"01/01/1970"]]; 
NSString * unixTime = [[NSString alloc] initWithFormat:@"%0.0f", oldTime]; 
+0

這正是我所期待的。非常感謝! – jcdmb 2010-07-15 13:08:38

17

雖然@ lordsandwich的答案是正確的,你也可以直接使用NSDatetimeIntervalSince1970方法,而不是「製造」 1970年NSDate自己。

這將這樣的工作:

NSDate *past = [NSDate date]; 
NSTimeInterval oldTime = [past timeIntervalSince1970]; 
NSString *unixTime = [[NSString alloc] initWithFormat:@"%0.0f", oldTime]; 

,當您使用這個你不要增加不必要的新對象的自動釋放池,我認爲它實際上是更好地使用這種方法。

+0

是的,它看起來更好。謝謝。 – jcdmb 2010-07-16 08:40:20