1. 程式人生 > >C++ 的字串和時間型別轉換

C++ 的字串和時間型別轉換

1.指定time_t型別的時間,格式化為YYYYMMDDHH24MISS型的字串
void FormatTime(time_t time1, char *szTime)
{
        struct tm tm1;

#ifdef WIN32
        tm1 = *localtime(&time1);
#else
        localtime_r(&time1, &tm1 );
#endif
        sprintf( szTime, "%4.4d%2.2d%2.2d%2.2d%2.2d%2.2d",
                     tm1.tm_year+1900, tm1.tm_mon+1, tm1.tm_mday,
                         tm1.tm_hour, tm1.tm_min,tm1.tm_sec);
}

2.指定YYYYMMDDHH24MISS型的時間,格式化為time_t型的時間
time_t FormatTime2(char * szTime)
{
        struct tm tm1;
        time_t time1;

        sscanf(szTime, "%4d%2d%2d%2d%2d%2d",    
                     &tm1.tm_year,
                     &tm1.tm_mon,
                     &tm1.tm_mday,
                     &tm1.tm_hour,
                     &tm1.tm_min,
                     &tm1.tm_sec);
              
        tm1.tm_year -= 1900;
        tm1.tm_mon --;

        tm1.tm_isdst=-1;
   
        time1 = mktime(&tm1);
        return time1;
}