我有点卡在这里使用mktime功能,我很感激我能得到任何帮助。
所以我正在做的是,让用户输入一年,一个月和一天,然后运行tm结构来计算这样的一切:
struct tm time;
time_t t;
time.tm_year = year - 1900;
time.tm_mon = month - 1;
time.tm_mday = day;
time.tm_hour = 0;
time.tm_min = 0;
time.tm_sec = 0;
time.tm_isdst = -1;
然后我运行mktime函数并将其设置为等于t:
t = mktime (& time);
然后我像这样运行打印功能:
printf (“%s”,ctime(& t));
然而,我通过这种方法获得的是例如:
2013年8月23日星期六00:00:00
但我想要的最终时间格式是这样的:
Mon 2013 02 11
我该怎么做呢?我认为我使用ctime函数的方法并不正确。
也许我应该使用strftime函数?
请注意,我不需要打印当前时间。
谢谢,有一个好的:)
答案 0 :(得分:3)
您可以使用strftime
。这是一个例子:
char str[50];
struct tm *tm_info = localtime(&t);
strftime(str, 50, "%a %G %m %d", tm_info);
然后您可以使用printf("%s\n", str)
输出格式化日期。
感谢Xis88的格式。