我尝试使用strftime()来获取格式化的时间戳.
char ft[ 256 ]; struct tm *tmp; strftime( ft, 256, "%D - %T", tmp );
我的问题是我得到了"13/02/60 - 03:07:-17958194".有没有办法正确显示秒数?(我使用的是Mac OS X和gcc)
您在已发布的代码中使用了未初始化的值,这可以解释您遇到此问题的原因.以下代码会产生您要查找的内容:
#include#include int main(int argc, char *argv[]) { char ft[256]; struct tm *tmp; time_t curtime; time(&curtime); tmp = localtime(&curtime); strftime(ft, 256, "%D - %T %s", tmp); printf("%s\n", ft); return(0); }
然后,编译并运行示例:
cc -o time_ex time_ex.c ./time_ex 02/26/09 - 11:26:34 1235665594
ETA:当然,如果你只想要没有UNIX时间的本地时间,请删除%s.