MFC时间CTime/SYSTEMTIME/COleDateTime/time_t

15 篇文章 0 订阅
1.CTime类获取当前时间

CTime curTime;
curTime = CTime::GetCurrentTime();
CString strCurTime;                  
strCurTime.Format(_T("%04d/%02d/%02d %02d:%02d:%02d"), curTime.GetYear(), curTime.GetMonth(), curTime.GetDay(), curTime.GetHour(), curTime.GetMinute(), curTime.GetSecond());

 

2.SYSTEMTIME结构体获取当前时间

SYSTEMTIME curTime;
GetLocalTime(&curTime);
CString strCurTime;
strCurTime.Format(_T("%04d/%02d/%02d %02d:%02d:%02d"), curTime.wYear, curTime.wMonth, curTime.wDay, curTime.wHour, curTime.wMinute, curTime.wSecond);

 

3.COleDateTime/COleDateTimeSpan(时间加减)

COleDateTime today=COleDateTime::GetCurrentTime();//获取当前的时间
    
COleDateTimeSpan timespan( 0, 8, 0, 0 ); //(Day, Hour, Minute, Second);
COleDateTime time=today + timespan;     //Time比Today加了八小时
CString str; 
str=time.Format("%H:%M %Y-%m-%d"); 
AfxMessageBox(str);

 

4.time_t(转换成秒)
SYSTEMTIME curTime;
GetLocalTime(&curTime);
struct tm tmTime;
tmTime.tm_year = curTime.wYear - 1900;
tmTime.tm_month = curTime.wMonth;
tmTime.tm_day = curTime.wDay;
tmTime.tm_hour = curTime.wHour;
tmTime.tm_minute = curTime.wMinute;
tmTime.tm_second = curTime.wSecond;
__time64_t curTime_64t = _mktime64(&tmTime); 

struct tm st;
st.tm_year = atoi(strTime.substr(0, 4).c_str())-1900;
st.tm_mon = atoi(strTime.substr(5, 2).c_str());
st.tm_mday = atoi(strTime.substr(8, 2).c_str());
st.tm_hour = atoi(strTime.substr(11, 2).c_str());
st.tm_min = atoi(strTime.substr(14, 2).c_str());
st.tm_sec = atoi(strTime.substr(17, 2).c_str());
tt = mktime(&st);     


引用自:http://blog.csdn.net/qivan/article/details/7382955

time_t是C/C++语言标准库中的时间类型,表示从格林威治时间1970年1月1日00:00:00到当前时间的秒数。CTime、SYSTEMTIME、COleDateTime、COleVariant是MFC中的时间类型,用于便捷地进行日期和时间的操作。 下面是它们之间的互相转换代码及讲解: 1. time_t to CTime ```cpp time_t t = time(NULL); CTime time(t); ``` 这段代码将当前时间time_t类型转换为CTime类型。CTime类型的构造函数可以接受time_t类型的参数,将其转换为CTime类型。 2. CTime to time_t ```cpp CTime time(2021, 10, 1, 0, 0, 0); time_t t = time.GetTime(); ``` 这段代码将指定时间的CTime类型转换为time_t类型。CTime类型的GetTime函数返回从格林威治时间1970年1月1日00:00:00到当前时间的秒数,即time_t类型。 3. SYSTEMTIME to CTime ```cpp SYSTEMTIME st; GetLocalTime(&st); CTime time(st); ``` 这段代码将当前时间的SYSTEMTIME类型转换为CTime类型。CTime类型的构造函数可以接受SYSTEMTIME类型的参数,将其转换为CTime类型。 4. CTime to SYSTEMTIME ```cpp CTime time(2021, 10, 1, 0, 0, 0); SYSTEMTIME st; time.GetAsSystemTime(st); ``` 这段代码将指定时间的CTime类型转换为SYSTEMTIME类型。CTime类型的GetAsSystemTime函数将CTime类型转换为SYSTEMTIME类型。 5. COleDateTime to CTime ```cpp COleDateTime dt; dt = COleDateTime::GetCurrentTime(); CTime time(dt.GetYear(), dt.GetMonth(), dt.GetDay(), dt.GetHour(), dt.GetMinute(), dt.GetSecond()); ``` 这段代码将当前时间的COleDateTime类型转换为CTime类型。COleDateTime类型的GetCurrentTime函数返回当前时间的COleDateTime类型,CTime类型的构造函数可以接受COleDateTime类型的参数,将其转换为CTime类型。 6. CTime to COleDateTime ```cpp CTime time(2021, 10, 1, 0, 0, 0); COleDateTime dt(time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute(), time.GetSecond()); ``` 这段代码将指定时间的CTime类型转换为COleDateTime类型。COleDateTime类型的构造函数可以接受CTime类型的参数,将其转换为COleDateTime类型。 7. COleVariant to CTime ```cpp COleVariant var; var = COleDateTime::GetCurrentTime(); CTime time(var.date); ``` 这段代码将当前时间的COleVariant类型转换为CTime类型。COleVariant类型的构造函数可以接受COleDateTime类型的参数,将其转换为COleVariant类型,CTime类型的构造函数可以接受DATE类型的参数,将其转换为CTime类型。 8. CTime to COleVariant ```cpp CTime time(2021, 10, 1, 0, 0, 0); COleVariant var(time); ``` 这段代码将指定时间的CTime类型转换为COleVariant类型。COleVariant类型的构造函数可以接受CTime类型的参数,将其转换为COleVariant类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值