Windows下c++獲取系統時間的三種方法
阿新 • • 發佈:2019-01-06
1、CTime類的static介面GetCurrentTime()
包含的標頭檔案#include <atltime.h>CTime類的物件表示的時間是基於格林威治標準時間(GMT)的。
CTime表示的日期上限是3000年12月31日,下限是1970年1月1日 12:00:00 AM GMT。
構造和初始化:
CTime(__time64_t time);
以一個__time64_t(注意:最前面的下劃線有兩條)型別的資料來構造一個CTime物件。引數time是一個__time64_t型別的值,表示自GMT時間1970年1月1日零點以來的秒數,這裡要注意的是,引數time代表的時間會轉換為本地時間儲存到構造的CTime物件中。例如,我們傳遞引數0構造一個CTime物件,然後呼叫CTime物件的GetHour成員函式將返回8,因為引數0代表的GMT時間轉換為北京時間後為1970年1月1日 8:00:00。
CTime(
int nYear,
int nMonth,
int nDay,
int nHour,
int nMin,
int nSec,
int nDST = -1
);
以本地時間的年、月、日、小時、分鐘、秒等幾個時間分量構造CTime物件。注意年份取值範圍在1970-3000,如果不在該範圍內構造初始化的話,就會出現異常崩潰。
static CTime WINAPI GetCurrentTime( );
獲取系統當前日期和時間。返回表示當前日期和時間的CTime物件。
CTime tmp; tmp = CTime::GetCurrentTime(); info.nYear = tmp.GetYear(); info.nMonth = tmp.GetMonth(); info.nDay = tmp.GetDay(); info.nHour = tmp.GetHour(); info.nMinute = tmp.GetMinute(); info.nSecond = tmp.GetSecond();
2、Windows api GetSystemTime()
CTime(const SYSTEMTIME& st,int nDST = - 1) ;
以一個SYSTEMTIME結構體變數來構造CTime物件。
SYSTEMTIME tmp; GetSystemTime(&tmp); info.nYear = tmp.wYear; info.nMonth = tmp.wMonth; info.nDay = tmp.wDay; info.nHour = tmp.wHour; info.nMinute = tmp.wMinute; info.nSecond = tmp.wSecond;
3、window api GetLocalTime()(毫秒級)
SYSTEMTIME tmp;
GetLocalTime(&tmp);
info.nYear = tmp.wYear;
info.nMonth = tmp.wMonth;
info.nDay = tmp.wDay;
info.nHour = tmp.wHour;
info.nMinute = tmp.wMinute;
info.nSecond = tmp.wSecond;
info.nMillSecond = tmp.wMilliseconds;