天天看点

构造64位时间DWORD64

DWORD64 SystemTimeToDword64(SYSTEMTIME st)

{
	struct tm tm_time;
	memset(&tm_time, 0, sizeof(tm_time));
	tm_time.tm_year = st.wYear - 1900;
	tm_time.tm_mon = st.wMonth - 1;
	tm_time.tm_mday = st.wDay;
	tm_time.tm_hour = st.wHour;
	tm_time.tm_min = st.wMinute;
	tm_time.tm_sec = st.wSecond;
	time_t time = mktime(&tm_time);
	long long dw64TimeMs = time;
	dw64TimeMs *= 1000;
	
	return dw64TimeMs;
}
           
SYSTEMTIME stLocal; 
	//GetLocalTime(&stLocal);

	char szDate[] = "2015-07-27 11:10:58:883";
	/*sscanf(szDate, "%04d-%02d-%02d %02d:%02d:%02d:%03d",&stLocal.wYear, &stLocal.wMonth, &stLocal.wDay, &stLocal.wHour, &stLocal.wMinute, &stLocal.wSecond,  &stLocal.wMilliseconds);
	dwTime64 = SystemTimeToDword64(stLocal);*/

	sscanf(szDate, "%04hd-%02hd-%02hd %02hd:%02hd:%02hd:%03hd",&stLocal.wYear, &stLocal.wMonth, &stLocal.wDay, &stLocal.wHour, &stLocal.wMinute, &stLocal.wSecond,  &stLocal.wMilliseconds);
	dwTime64 = SystemTimeToDword64(stLocal);

	time_t timeTmp = dwTime64 / 1000;
	struct tm *ptmReal = localtime(&timeTmp);
	char szTime[64] = {0};
	if(ptmReal != NULL)
	{
		sprintf(szTime, "%04d-%02d-%02d %02d:%02d:%02d", ptmReal->tm_year+1900, ptmReal->tm_mon+1, ptmReal->tm_mday, ptmReal->tm_hour, ptmReal->tm_min, ptmReal->tm_sec);
		SetDlgItemText(IDC_EDIT_MSG, szTime);
	}