您的当前位置:首页正文

C/C++ 字符串与时间戳互相转换

来源:华佗健康网
 //时间戳转string  1713175204=  2024-04-15 18:00:04
    struct	tm	*ttime;
    time_t flag_time = time(NULL);
    ttime = localtime(&flag_time);
    char	time_str[100];
    cout << flag_time <<endl;
    cout << mktime(ttime) <<endl;

    sprintf(time_str,"%04d-%02d-%02d %02d:%02d:%02d",ttime->tm_year+1900,ttime->tm_mon+1,ttime->tm_mday,ttime->tm_hour,ttime->tm_min,ttime->tm_sec);
    cout << "1 = " <<time_str <<endl;
    strftime(time_str,100,"%Y年%m月%d日 %H时%M分%S秒",ttime);
    cout << "2=  " <<time_str <<endl;
    //string转时间戳   2024-04-15 18:00:04 = 1713175204
    string ss = time_str;
    cout << ss <<endl;

    //方式一:linux系统适用
//    struct tm timeinfo;
//    strptime(time_str.c_str(), "%Y年%m月%d日 %H时%M分%S秒",  &timeinfo); //windows环境下没有
//    time_t timeStamp = mktime(&timeinfo); //将结构体转为时间戳
//    cout << timeStamp<<endl;
   // 方式二
    struct tm tm_;
    int year, month, day, hour, minute,second;
    sscanf(ss.c_str(),"%d年%d月%d日 %d时%d分%d秒", &year, &month, &day, &hour, &minute, &second);//将string按照格式进行解析到数据中
//    sscanf(ss.c_str(),"%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second);//将string按照格式进行解析到数据中
    tm_.tm_year  = year-1900;
    tm_.tm_mon   = month-1;
    tm_.tm_mday  = day;
    tm_.tm_hour  = hour;
    tm_.tm_min   = minute;
    tm_.tm_sec   = second;
    tm_.tm_isdst = 0;
    cout << year << " "<< month  << " " << day << " "<< endl;
    cout << tm_.tm_year << " "<< tm_.tm_mon  << " " <<  tm_.tm_mday << " "<< endl;
    time_t timeStamp = mktime(&tm_);
    cout <<"timeStamp = "<< timeStamp<<endl;

时间戳转string

string	CRelayControlInterface::GetFlagTimeStr(time_t flag_time)
{
	struct	tm	*ttime;
	ttime = localtime(&flag_time);

	char	time_str[100];
	sprintf(time_str,"%04d%02d%02d%02d%02d%02d",ttime->tm_year+1900,ttime->tm_mon+1,ttime->tm_mday,ttime->tm_hour,ttime->tm_min,ttime->tm_sec);

    return string(time_str);
}

string转时间戳


time_t CRelayControlInterface::GetTimeforStr(const string& time_str)
{
        struct tm timeinfo;
        strptime(time_str.c_str(), "%Y-%m-%d-%H:%M:%S", &timeinfo);
        time_t timeStamp = mktime(&timeinfo); //将结构体转为时间戳
        return timeStamp;
}

因篇幅问题不能全部显示,请点此查看更多更全内容