0

我有一个变量: char date[11];,我需要在其中放入当前日期,例如29/06/2012

所以我会做类似的事情:

printf ("%s\n", date);

输出将是:29/06/2012

我只找到了以文字形式打印日期的选项,例如Fri, June 2012,而不是数字中的实际日期。

那么如何以数字形式打印当前日期?

4

2 回答 2

5

你可以参考这个函数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);
}
于 2012-06-29T20:34:53.057 回答
3

您正在寻找 的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);
}
于 2012-06-29T20:35:00.043 回答