Windows下c++獲取系統時間的三種方法

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;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章