C - 仅打印mktime中的选定信息?

时间:2015-10-18 15:41:06

标签: c mktime

我有点卡在这里使用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函数?

请注意,我不需要打印当前时间。

谢谢,有一个好的:)

1 个答案:

答案 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的格式。