1、CTime类的static接口GetCurrentTime()
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;