参考的网站如下:
http://c.biancheng.net/cpp/html/144.html
http://www.linuxidc.com/Linux/2012-03/55909.htm
代码如下:
time_t timep;
struct tm *p;
time(&timep);
p = localtime(&timep); //取得年月日时分秒 struct timespec timeNow; clock_gettime( CLOCK_REALTIME, &timeNow); //取得纳秒转换成毫秒 char buf[]={};
sprintf(buf, "%d:%02d:%02d-%02d:%02d:%02d-%03d",+p->tm_year,+p->tm_mon,p->tm_mday,p->tm_hour,p->tm_min,p->tm_sec,(int)(timeNow.tv_nsec/));
有一个问题就是指针p是否需要删除。自己测试发现删除的话,程序会崩溃,不删除则正常。网上查了一下,http://bbs.csdn.net/topics/360064214,里面说不需要删除,不过localtime在多线程下不安全,可以用localtime_s代替。暂时不需要考虑那么多,所以就不管了。。。
那里面的13楼说:
由__getgmtimebuf函数可知 struct tm *ptb = _malloc_crt(sizeof(struct tm)))
空间是这样申请来的
__getgmtimebuf是localtime函数调用的
所以不需要释放吧。