如何将时间转换为c中的c字符串?

时间:2010-08-19 13:55:58

标签: c arrays c-strings

我想在.c文件中写一些.txt文件,但需要将当前时间戳命名为该文件作为后缀,就像filename_2010_08_19_20_30一样。所以我必须首先定义文件名char数组并自己处理文件名?逐个分配字符?

有没有简单的方法呢?

3 个答案:

答案 0 :(得分:9)

有一个名为strftime的函数,其目的是将时间值写入人类可读的字符串。文档:http://linux.die.net/man/3/strftime

一个例子:

#include <time.h>
#include <stdio.h>

int main()
{
   FILE* file;
   char filename[128];
   time_t now;
   struct tm tm_now;

   now = time(NULL);
   localtime_r(&now, &tm_now);

   strftime(filename, sizeof(filename), "filename_%Y_%m_%d_%H_%M.txt", &tm_now);

   file = fopen(filename, "w");

   fprintf(file, "Hello, World!\n");

   fclose(file);

   return 0;
}

答案 1 :(得分:2)

  time_t timet;
  struct tm * timeinfo;
  char buffer [32];

  time (&timet);
  timeinfo = localtime(&timet);

  strftime(buffer,32,"_%Y_%m_%d_%H_%M",timeinfo);

答案 2 :(得分:1)