我有一个变量: char date[11];
,我需要在其中放入当前日期,例如29/06/2012
。
所以我会做类似的事情:
printf ("%s\n", date);
输出将是:29/06/2012
我只找到了以文字形式打印日期的选项,例如Fri, June 2012
,而不是数字中的实际日期。
那么如何以数字形式打印当前日期?
你可以参考这个函数strftime。我会让你弄清楚如何使用它:-)
既然您声称您已经搜索过它,我将提供答案:
// first of all, you need to include time.h
#include<time.h>
int main() {
// then you'll get the raw time from the low level "time" function
time_t raw;
time(&raw);
// if you notice, "strftime" takes a "tm" structure.
// that's what we'll be doing: convert "time_t" to "tm"
struct tm *time_ptr;
time_ptr = localtime(&raw);
// now with the "tm", you can format it to a buffer
char date[11];
strftime(date, 11, "%d/%m/%Y", time_ptr);
printf("Today is: %s\n", date);
}
您正在寻找 的strftime
一部分time.h
。您需要将其传递给struct tm *
.
对于您的示例,格式字符串将是: "%d/%m/%Y"
,这是一种非常常见的情况。
基于文档中的代码:
char date[11];
time_t t;
struct tm *tmp;
t = time(NULL);
tmp = localtime(&t);
if (tmp != NULL)
{
if (strftime(date, 11, "%d/%m/%Y", tmp) != 0)
printf("%s\n", date);
}