GetCurrentTime(),GetLocalTime(),GetSystemTime()之间的区别

来源:互联网 发布:杨辉三角c语言程序 编辑:程序博客网 时间:2024/05/20 23:08
1. GetCurrentTime()

    GetCurrentTime()只和16位版本的windows兼容,在32位windows下最好用gettickcount();

2. GetLocalTime()

    GetLocalTime()在不同的机器中会有不同的结果,这和你在控制面板中的时区设置有关. 该函数是获取的系统当前所属时区的时间, 比如说, 在北京时区, 那么获取的该时间的时间.

3. GetSystemTime()
    

     GetSystemTime()获取的格林尼治时间, 是全球标准时间.

    时间是一个非常重要的信息,比如写LOG时,就需要把时间输出来,跟踪程序是什么时候出错的。或者当你开发一个银行交易系统时,就要记录当前交易的时间,以便后面可以输出报表,打印给信用卡用户。根据不同的需求,可能需要使用不同的时间,目前有UTC和本地时间。UTC是格林威治时间,也就是全球标准时间。本地时间就是相对于UTC而言的,比如中国北京是在东8区,相对于UTC就多了8个小时。一般使用到的时间都是使用本地时间,也就是调用函数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()获取的是从设备开机后的毫秒数. 不包括系统的挂起时间.

      主要的应用:
          dwOldTime = GetTickCount();
          DoSomeThing();
          dwTimeElapsed = GetTickCount() - dwOldTime;
      获取某段程序执行所需的时间.

5. 更好的办法:“now函数”
    例如:formatdatetime('yyyy ''年'' m ''月'' d ''日''dddd '+'hh:mm:ssAM/PM',now);
    输出结果: 2001年5月8日星期一19:35:40 PM
0 0
原创粉丝点击