1. GetCurrentTime() GetCurrentTime()只和16位版本的windows兼容,在32位windows下最好用gettickcount(); 2. GetLocalTime() GetLocalTime()在不同的機(jī)器中會(huì)有不同的結(jié)果,這和你在控制面板中的時(shí)區(qū)設(shè)置有關(guān). 該函數(shù)是獲取的系統(tǒng)當(dāng)前所屬時(shí)區(qū)的時(shí)間, 比如說, 在北京時(shí)區(qū), 那么獲取的該時(shí)間的時(shí)間. 3. GetSystemTime() GetSystemTime()獲取的格林尼治時(shí)間, 是全球標(biāo)準(zhǔn)時(shí)間. 時(shí)間是一個(gè)非常重要的信息,比如寫LOG時(shí),就需要把時(shí)間輸出來,跟蹤程序是什么時(shí)候出錯(cuò)的。或者當(dāng)你開發(fā)一個(gè)銀行交易系統(tǒng)時(shí),就要記錄當(dāng)前交易的時(shí)間,以便后面可以輸出報(bào)表,打印給信用卡用戶。根據(jù)不同的需求,可能需要使用不同的時(shí)間,目前有UTC和本地時(shí)間。UTC是格林威治時(shí)間,也就是全球標(biāo)準(zhǔn)時(shí)間。本地時(shí)間就是相對于UTC而言的,比如中國北京是在東8區(qū),相對于UTC就多了8個(gè)小時(shí)。一般使用到的時(shí)間都是使用本地時(shí)間,也就是調(diào)用函數(shù)GetLocalTime。 SYSTEMTIME stUTC; GetSystemTime(&stUTC); TCHAR chBuf[nBufSize]; wsprintf(chBuf,_T("UTC: %u/%u/%u %u:%u:%u:%u %d\r\n"), stUTC.wYear, stUTC.wMonth, stUTC.wDay, stUTC.wHour, stUTC.wMinute, stUTC.wSecond, stUTC.wMilliseconds,stUTC.wDayOfWeek); 4. GetTickCount() GetTickCount()獲取的是從設(shè)備開機(jī)后的毫秒數(shù). 不包括系統(tǒng)的掛起時(shí)間. 主要的應(yīng)用: dwOldTime = GetTickCount(); DoSomeThing(); dwTimeElapsed = GetTickCount() - dwOldTime; 獲取某段程序執(zhí)行所需的時(shí)間. 5. 更好的辦法:“now函數(shù)” 例如:formatdatetime('yyyy ''年'' m ''月'' d ''日''dddd '+'hh:mm:ssAM/PM',now); 輸出結(jié)果: 2001年5月8日星期一19:35:40 PM |
|