• 全部
  • 问答

请教各位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 这样的格式 然后 两个时间相减 得到他的差。

有大神会吗?

...全文
42 1 收藏 1
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
赵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).
//
回复
相关推荐
发帖
C++ 语言
创建于2007-09-28

5.9w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
帖子事件
创建了帖子
2015-11-18 11:45
社区公告
暂无公告