我正在尋找關於獲取utc時間的代碼。關於C++中的posix ftime
static const long long SECSEPOCHS = 11644473600ll;
static const long long SECSto100nanosecs = 10000000ll;
static const long long MSECSto100nanosecs = 10000ll;
longlong mytime;
struct timeb now;
ftime(&now);
mytime = now.time;
mytime += SECSEPOCHS
mytime *= SECSto100nanosecs;
mytime += now.millitm * MSECSto100nanosecs;
我對以上代碼有如下問題。 什麼是神奇數字「11644473600ll」,我們如何得到這個數字,以及爲什麼我們將這個數字添加到now.time,這是由ftime返回的。 epcoh是什麼意思?
由於
他們的OS或C庫函數不是他們的轉換嗎? (我找不到任何快速 - 只有SystemTimeToFileTime這是別的 - 但我很驚訝,如果他們不存在) – Rup 2011-03-09 09:59:03
我一直寫自己的轉換,從來沒有找到或看到任何直接的轉換機制。 – Erik 2011-03-09 10:01:11
是,如果我們僅在內部使用unix系統,我們不必使用幻數來調整秒。我對嗎? – venkysmarty 2011-03-09 10:03:19