string字符串格式化成time_t,并计算2个time_t的时间差

 
  

#include "time.h"
#include <iostream>
#include <string>
using namespace std;

time_t string2time(const string & time_string)
{
	struct tm tm1;
	time_t time1;
	sscanf(time_string.c_str(), "%d-%d-%d T%d:%d:%dZ" ,     
		&(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 --;
	time1 = mktime(&tm1);

	return time1;
}

string double2TimeString(double dTime)
{
	int iHour = dTime/60/60;
	int iMin = (dTime - iHour*60*60)/60;
	int iSec = dTime - iHour*60*60 - iMin*60;
	char buffer[10]; 
	sprintf(buffer,"%02d:%02d:%02d",iHour, iMin , iSec);
	string strTemp = buffer;
	return strTemp;
}

int main()
{
	string strStartTime = "2014-08-31 T13:20:58Z";
	string strEndTime = "2014-08-31 T15:12:32Z";
	cout<<strStartTime<<endl;
	cout<<strEndTime<<endl;
	time_t tStartTime = string2time(strStartTime);
	time_t tEndTime = string2time(strEndTime);
	//返回两个时间相差的秒数
	double dTime = difftime(tEndTime, tStartTime);
	string strTime = double2TimeString(dTime);
	cout<<"时间间隔:"<<strTime<<endl;
	return 0;
}
 
 

效果图:

转载于:https://www.cnblogs.com/qq42425328/p/3948316.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值