c 獲取系統時間戳的方法

2021-10-01 09:41:16 字數 1294 閱讀 5091

在程式中,我們經常需要獲取當前的時間戳到毫秒甚至微妙級,但是頻繁的呼叫api會對程式的效能有些許影響,並且要還要考慮不同平台的影響。參考大佬的實現,積累下關於頻繁獲取時間戳的知識。

實現的思路是:

#include #include #include #include using namespace std;

#ifdef _win32

#include #else

#include #endif //_win32

//該類借助raii思想,使傳入的task物件可以成對進行,而不考慮釋放的問題

class oncetoken

_ondestructed = ondestructed;

} oncetoken(const task &onconstructed, task &&ondestructed)

_ondestructed = std::move(ondestructed);

} ~oncetoken()

}private:

oncetoken();

oncetoken(const oncetoken &);

oncetoken(oncetoken &&);

oncetoken &operator =(const oncetoken &)=delete;

oncetoken &operator =(oncetoken &&) = delete;

task _ondestructed;

};static inline uint64_t getcurrentmicrosecondorigin()

static atomics_currentmicrosecond(getcurrentmicrosecondorigin());

static atomics_currentmillisecond(getcurrentmicrosecondorigin() / 1000);

static inline bool initmillisecondthread()

});static oncetoken s_token(() );

return true;

}uint64_t getcurrentmillisecond()

uint64_t getcurrentmicrosecond()

#include using namespace std;

int main(int argc, char *ar**)

getchar();

return 0;

}

時間戳的獲取方法

new date new date gettime date.now 三種方法都可以獲取時間戳,但是實際上效能是不一樣的 雖然差別不大,但是也算是一種效能的追求 var a new date var b newdate gettime var c date.now console.log a,b,c...

c 獲取時間戳

獲取相對程式啟動的 時間 單位 ms 實際的秒數 1000 public static long getreletivetostartprogramseconds currentdate nanoseconds elapsedticks 100 ticks elapsedticks seconds ...

C 獲取時間戳,時間戳與時間格式互轉

最近專案中用到獲取時間的功能,現在把用到的分享一下。1.時間戳轉為 00 00時區 日期格式 yyyy mm dd hh mm ss 時間戳轉為 00 00時區 日期格式 yyyy mm dd hh mm ss public static datetime getutcdatetime string...