2014-02-27 168 views
8

我想獲取UTC時間戳。我不能這樣做[[NSDate date] timeIntervalSince1970];因爲它返回本地時區的時間戳。如何在iOS中獲取UTC的時間戳?iOS獲取UTC時間戳

編輯

解決我可以在這裏帕維爾使用[[NSDate date] timeIntervalSince1970]; :)

+1

在該時區你希望自己的時間戳? – ReeCube

+0

我不想任何時區;)我只想UNIX時間戳。如果我理解正確,UNIX時間戳中沒有時區。 – AYMADA

+2

那麼timeIntervalSince1970如何返回本地時區的時間戳呢? :P – ReeCube

回答

9

見回答:Get current date in milliseconds

他指的是使用CFAbsoluteTimeGetCurrent();

這是記錄here

由於是系統時間,只需修正時間間隔到GMT的偏移量即可。

儘管如此,如果您爲本地時區更正,仍然可以使用您的代碼。

通過調用

[[NSTimeZone systemTimeZone] secondsFromGMT]; 

獲得時區偏移
[[NSTimeZone systemTimeZone] secondsFromGMTForDate:[NSDate date]]; 
+0

請參閱http://stackoverflow.com/questions/14592556/objective-c-how-can-i-get-the-current-date-in-utc-timezone 。 – ahwulf

5

只是timeIntervalSince1970返回UTC時間爲double(NSTimeInterval)

爲了得到一個32位表示(也許是因爲與嵌入式系統的交互):

time_t timestamp = (time_t)[[NSDate date] timeIntervalSince1970];

1

斯威夫特3

let utcTimestamp = Date().timeIntervalSince1970 
print("timeStamp = \(utcTimestamp)")