【发布时间】:2012-03-03 05:42:15
【问题描述】:
我需要在 C 中将日期作为一个字符串,将当前时间作为另一个字符串。我查看了 time.h 并看到它可以让我得到整个事情。然后我必须使用一些字符串方法吗?我注意到 C 没有子字符串方法? strcpy 似乎可以工作,但我需要一个 char * 而不是数组。
有什么建议吗?
谢谢
【问题讨论】:
我需要在 C 中将日期作为一个字符串,将当前时间作为另一个字符串。我查看了 time.h 并看到它可以让我得到整个事情。然后我必须使用一些字符串方法吗?我注意到 C 没有子字符串方法? strcpy 似乎可以工作,但我需要一个 char * 而不是数组。
有什么建议吗?
谢谢
【问题讨论】:
您可以为此使用strftime:
struct tm *tm;
time_t t;
char str_time[100];
char str_date[100];
t = time(NULL);
tm = localtime(&t);
strftime(str_time, sizeof(str_time), "%H %M %S", tm);
strftime(str_date, sizeof(str_date), "%d %m %Y", tm);
【讨论】:
localtime 期望time_t *。我编辑了答案。你的编译器应该已经警告过你了。
time 应该接受NULL。问题是它返回一个time_t 而localtime 想要一个time_t *。