strptime的时间格式问题

guoqlee 2013-12-20 08:53:29
如下代码我是求两个时间的秒数,如果定义char fmt[] = "%Y-%m-%d-%H:%M:%S";,最后的结果是正确的,但是如果定义char fmt[] = "%Y-%m-%d %H:%M:%S";结果就是错误的。但是我想要%Y-%m-%d %H:%M:%S这种格式,这是为什么?
#include <stdio.h>
#include <time.h>
main(int argc, char *argv[])
{
char fmt[] = "%Y-%m-%d %H:%M:%S";
time_t ggtime,curtime;
struct tm *tb = (struct tm*)malloc(sizeof(struct tm));
strptime(argv[1], fmt, tb);
ggtime = mktime(tb);
curtime = time(NULL);
printf("The pause used %f seconds.\n",difftime(curtime,ggtime));
}

结果:
<LIS>:/orahome>./hello 2013-12-20-7:20:00
The pause used 1267.000000 seconds.
<LIS>:/orahome>./hello 2013-12-20 07:20:00
The pause used 27859.000000 seconds.
...全文
314 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
angel_su 2013-12-20
  • 打赏
  • 举报
回复
参数带空格要加引号吧...

70,014

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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