1. 程式人生 > >time_t、SYSTEMTIME、CTime、COleDateTime互轉

time_t、SYSTEMTIME、CTime、COleDateTime互轉

/*

**CString轉COleDateTime

*/

const CString baseVideoDayTime = "1980-01-01 15:56:48";

COleDateTime creat_date;
bool b = creat_date.ParseDateTime(baseVideoDayTime);//需要指定的字元格式

/*

**COleDateTimeSYSTEMTIME

*/

SYSTEMTIME sysTime;
creat_date.GetAsSystemTime(sysTime);

/*

**SYSTEMTIMECTime

*/

CTime t0;

t0=sysTime;//呼叫CTime構造

//time_t 型別在單位(秒),計算比較時方便,需要 #include <time.h>

/*

**time_t轉SYSTEMTIME

*/

SYSTEMTIME Time_tToSystemTime(time_t t)

{

    tm *ptm = localtime(&t);//time_t 先轉為tm

    SYSTEMTIME st = {1900 + ptm->tm_year, 

                                   1 + ptm->tm_mon, 

                                   ptm->

tm_wday, 

                                   ptm->tm_mday, 

                                   ptm->tm_hour, 

                                   ptm->tm_min, 

                                   ptm->tm_sec, 

                                   0};

    return st;

}

/*

**SYSTEMTIME轉time_t

*/

time_t SystemTimeToTime_t( const SYSTEMTIME& st )

{

    tm temptm = {st.wSecond, 

                         st.wMinute, 

                         st.wHour, 

                         st.wDay, 

                         st.wMonth - 1, 

                         st.wYear - 1900, 

                         st.wDayOfWeek, 

                         0, 

                         0};

    return mktime(&temptm);

}