欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux下获取ms的时间

程序员文章站 2022-06-03 08:18:16
...
    
      void getCurrentTime(tm *iCurrentTime,long &iMilliSecond)
      {
           timeval tv; 
	   time_t timep;

	   gettimeofday(&tv, NULL);//获取当下精确的s和us的时间
	   time(&timep);//获取从1900年至今的秒数
	   iCurrentTime = gmtime(&timep); //注意tm_year和tm_mon的转换后才是实际的时间
	   iCurrentTime->tm_year += 1900;
	   iCurrentTime->tm_mon  += 1;

	   iMilliSecond = (tv.tv_sec*1000.0 + tv.tv_usec / 1000.0) - timep * 1000.0; //当前ms数
      }
    void setSystemTime(tm iCurrentTime,long &iMilliSecond)
    {
        int iRet ;
        timeval tv;

        time_t curtime = mktime(&iCurrentTime); //转化为1900年至今的秒数
        tv.tv_sec = curtime;
        tv.tv_usec = lMilliSecond * 1000;
        iRet  = settimeofday(&tv,NULL); //设置时间
			
        if(0 != iRet)
        {
	       printf("fail to set systemtime.");
        }
    }