localtime函数注意事项

    技术2022-05-19  24

    经过一个小实验得到结论,localtime函数实现的时候采用的是一块固定buffer,因此如果多次调用此函数,结果值会是最后一次的结果值,如果需要保存每次运行函数的准确结果,需要在localtime函数调用后直接将buffer内容拷贝出来,否则将被后续调用覆盖。    bool IsSameDay(time_t time1, time_t time2)  {   struct tm * ptimeDetail;   struct tm timeDetail1;   struct tm timeDetail2;   ptimeDetail = localtime ( &time1 );   memcpy(&timeDetail1, ptimeDetail, sizeof(tm));   ptimeDetail = localtime ( &time2 );   memcpy(&timeDetail2, ptimeDetail, sizeof(tm));   if( timeDetail1.tm_year == timeDetail2.tm_year && timeDetail1.tm_mon == timeDetail2.tm_mon    && timeDetail1.tm_mday == timeDetail2.tm_mday)   {    return true;   }   else   {    return false;   }  }


    最新回复(0)