時間是一個非常重要的資訊,比如寫LOG時,就需要把時間輸出來,跟蹤程式是什麼時候出錯的。或者當你開發一個銀行交易系統時,就要記錄當前交易的時間,以便後面可以輸出報表,列印給信用卡使用者。根據不同的需求,可能需要使用不同的時間,目前有UTC和本地時間。UTC是格林威治時間,也就是全球標準時間。本地時間就是相對於UTC而言的,比如中國北京是在東8區,相對於UTC就多了8個小時。一般使用到的時間都是使用本地時間,也就是調用函數GetLocalTime。
函數GetSystemTime和GetLocalTime聲明如下:
WINBASEAPI
VOID
WINAPI
GetSystemTime(
__out LPSYSTEMTIME lpSystemTime
);
WINBASEAPI
VOID
WINAPI
GetLocalTime(
__out LPSYSTEMTIME lpSystemTime
);
lpSystemTime是擷取系統時間的結構。
調用函數的例子如下:
#001
#002 //擷取系統時間。
#003 //蔡軍生 2007/11/11 QQ:9073204 深圳
#004 void TestSystem(void)
#005 {
#006 //擷取系統的UTC時間。
#007 SYSTEMTIME stUTC;
#008 ::GetSystemTime(&stUTC);
#009
#010 //顯示時間的間隔。
#011 const int nBufSize = 256;
#012 TCHAR chBuf[nBufSize];
#013 wsprintf(chBuf,_T("UTC: %u/%u/%u %u:%u:%u:%u %d\r\n"),
#014 stUTC.wYear, stUTC.wMonth, stUTC.wDay,
#015 stUTC.wHour, stUTC.wMinute, stUTC.wSecond,
#016 stUTC.wMilliseconds,stUTC.wDayOfWeek);
#017 OutputDebugString(chBuf);
#018
#019
#020 //擷取當地的時間。
#021 SYSTEMTIME stLocal;
#022 ::GetLocalTime(&stLocal);
#023
#024 //顯示時間的間隔。
#025 wsprintf(chBuf,_T("Local: %u/%u/%u %u:%u:%u:%u %d\r\n"),
#026 stLocal.wYear, stLocal.wMonth, stLocal.wDay,
#027 stLocal.wHour, stLocal.wMinute, stLocal.wSecond,
#028 stLocal.wMilliseconds,stLocal.wDayOfWeek);
#029 OutputDebugString(chBuf);
#030
#031 }
#032
上面兩個函數在我測試時輸出的結果,如下:
UTC: 2007/11/11 1:53:1:46 0
Local: 2007/11/11 9:53:1:46 0
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/caimouse/archive/2007/11/11/1878569.aspx