您的位置:首页 > 其它

不同时间类型之间的转换之SYSTEMTIME 与 time_t

2014-07-16 17:09 656 查看
SYSTEMTIME 与 time_t

time_t ConvertSYSTEMTIME2Timet(const SYSTEMTIME& st, BOOL bUseUTCTime)
{
time_t ret = -1;
struct tm gm = {st.wSecond, st.wMinute, st.wHour, st.wDay, st.wMonth-1, st.wYear-1900, st.wDayOfWeek, 0, 0};

if (!bUseUTCTime)
ret = mktime(&gm); // 反向转换 localtime, 使用本地时间
else
ret = _mkgmtime(&gm); // 反向转换 gmtime, 使用 UTC 时间
return ret;
}

SYSTEMTIME ConvertTimet2SYSTEMTIME(time_t& t, BOOL bUseUTCTime)
{
SYSTEMTIME st = { 1970, 1, 4, 1,0,0,0, 0 };
tm* temptmPtr = NULL;
//
if (!bUseUTCTime)
{
SYSTEMTIME stTmp = st;
SystemTimeToTzSpecificLocalTime(NULL, &st, &stTmp);
st = stTmp;
temptmPtr = localtime(&t); // 反向转换 mktime, 使用本地时间
}
else
temptmPtr = gmtime(&t); // 反向转换 _mkgmtime, 使用 UTC 时间

if (temptmPtr)
{
st.wYear = 1900 + temptmPtr->tm_year;
st.wMonth = temptmPtr->tm_mon + 1;
st.wDayOfWeek = temptmPtr->tm_wday;
st.wDay = temptmPtr->tm_mday;
st.wHour = temptmPtr->tm_hour;
st.wMinute = temptmPtr->tm_min;
st.wSecond = temptmPtr->tm_sec;
}

return st;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐