Win32 获取时间
SYSTEMTIME time; GetLocalTime(&time);
|
win32 格式化时间
char msg[9]; sprintf(msg, "%04d%02d%02d", st.wYear, st.wMonth, st.wDay);
|
timestamp
need cpp 11 support
#include <chrono>
std::time_t getTimeStamp() { std::chrono::time_point<std::chrono::system_clock,std::chrono::milliseconds> tp = std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system_clock::now()); auto tmp=std::chrono::duration_cast<std::chrono::milliseconds>(tp.time_since_epoch()); std::time_t timestamp = tmp.count(); return timestamp; }
|
时间戳转日期
std::tm* gettm(int64 timestamp) { int64 milli = timestamp+ (int64)8*60*60*1000; auto mTime = std::chrono::milliseconds(milli); auto tp=std::chrono::time_point<std::chrono::system_clock,std::chrono::milliseconds>(mTime); auto tt = std::chrono::system_clock::to_time_t(tp); std::tm* now = std::gmtime(&tt); printf("%4d年%02d月%02d日 %02d:%02d:%02d\n",now->tm_year+1900,now->tm_mon+1,now->tm_mday,now->tm_hour,now->tm_min,now->tm_sec); return now; }
|
函数计时
auto start = chrono::system_clock::now();
xxxfunc();
auto end = chrono::system_clock::now(); auto duration = chrono::duration_cast<chrono::microseconds>(end - start); wstring str = utils::format(L"花费了 %f 秒", double(duration.count()) * chrono::microseconds::period::num / chrono::microseconds::period::den);
|
定时器
linux
POSIX定时器支持ns级别
int timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); int timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspect *ovalue); int timer_gettime(timer_t timerid,struct itimerspec *value); int timer_getoverrun(timer_t timerid); int timer_delete (timer_t timerid);
|