0

我知道像这样使用 ctime

time_t now;
time(&now);
fprintf(ft,"%s",ctime(&now));

以这种方式返回我的日期时间

Tue Jun 18 12:45:52 2013

我的问题是是否有与 ctime 类似的东西以这种格式获取时间

2013/06/18 10:15:26
4

4 回答 4

1

请参阅localtimestrftime的手册页。第一个函数使用日期/时间元素转换结构中的时间戳,第二个函数使用格式字符串将其转换为字符串。

于 2013-06-18T11:00:05.853 回答
1

使用strftime

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

int main()
{
  struct tm *tp;
  time_t t;
  char s[80];

  t = time(NULL);
  tp = localtime(&t);
  strftime(s, 80, "%Y/%m/%d %H:%M:%S", tp);
  printf("%s\n", s);
  return 0;
}
于 2013-06-18T11:04:47.987 回答
0

故障时间存储在结构体 tm 中,定义如下:

       struct tm {
           int tm_sec;         /* seconds */
           int tm_min;         /* minutes */
           int tm_hour;        /* hours */
           int tm_mday;        /* day of the month */
           int tm_mon;         /* month */
           int tm_year;        /* year */
           int tm_wday;        /* day of the week */
           int tm_yday;        /* day in the year */
           int tm_isdst;       /* daylight saving time */
       };

可以以我们希望实现的格式显示单个变量。

于 2013-06-18T11:08:09.330 回答
0
#include <stdio.h>
#include <time.h>

int main(void){
    FILE *ft = stdout;
    char outbuff[32];
    struct tm *timeptr;
    time_t now;
    time(&now);
    timeptr = localtime(&now);
    strftime(outbuff, sizeof(outbuff), "%Y/%m/%d %H:%M:%S", timeptr);//%H:24 hour
    fprintf(ft,"%s", outbuff);
    return 0;
}
于 2013-06-18T11:09:37.290 回答