请教各位C++大神,看到请进!字符串转时间类型。

baidu_28006019 2015-11-18 11:45:01
问题是: 我要把字符串转为时间类型 怎么转? 例如:19900101101010----------------->1990-01-01 10:10:10


数据库中有一字段例如:DDSJ CString a=KQKL01.DDSJ;

a=19900101101010 我要转换为1990-01-01 10:10:10 这样的格式 然后 两个时间相减 得到他的差。

有大神会吗?

...全文
70 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-11-18
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <time.h>
char a[]="19900101101010";
char b[]="20151118131023";
struct tm sta;
struct tm stb;
time_t ta;
time_t tb;
char tmpbuf[128];
int main() {
    sscanf(a,"%4d%2d%2d%2d%2d%2d%2d",&sta.tm_year,&sta.tm_mon,&sta.tm_mday,&sta.tm_hour,&sta.tm_min,&sta.tm_sec);sta.tm_year-=1900;sta.tm_mon--;
    sscanf(b,"%4d%2d%2d%2d%2d%2d%2d",&stb.tm_year,&stb.tm_mon,&stb.tm_mday,&stb.tm_hour,&stb.tm_min,&stb.tm_sec);stb.tm_year-=1900;stb.tm_mon--;
    ta=mktime(&sta);
    tb=mktime(&stb);
    printf("From\n");
    strftime(tmpbuf,128,"%Y-%m-%d %H:%M:%S",localtime(&ta));printf("%s\n",tmpbuf);
    printf("to\n");
    strftime(tmpbuf,128,"%Y-%m-%d %H:%M:%S",localtime(&tb));printf("%s\n",tmpbuf);
    printf("elapse\n");
    printf("%.15lg\n",difftime(tb,ta));
    printf("second(s).\n");
    return 0;
}
//From
//1990-01-01 10:10:10
//to
//2015-11-18 13:10:23
//elapse
//816663613
//second(s).
//

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧