在我的C程序中,如何以2013-01-11 23:34:21
格式获取日期和时间?
我试过
time_t now;
time(&now);
printf("%s", ctime(&now));
但它正如Fri Jan 11 23:50:33 2013
...
由于
答案 0 :(得分:5)
您可以使用<time.h>
strftime()
功能
#include <time.h>
#include <stdio.h>
int main() {
time_t now;
time(&now);
struct tm* now_tm;
now_tm = localtime(&now);
char out[80];
strftime (out, 80, "Now it's %Y-%m-%d %H:%M:%S.", now_tm);
puts(out);
}
输出
Now it's 2013-01-12 10:33:13.
答案 1 :(得分:2)
从time.h
尝试strftime
:
char timeString[20];
time_t t;
struct tm tmp;
t = time(NULL);
// TODO: Error checking if (t < 0)
tmp = localtime_r(&t, &tmp);
// TODO: Error checking if tmp == NULL
strftime(timeString, sizeof(timeString), "%Y-%m-%d %H:%M:%S", tmp));
// TODO: Error checking if returned number == sizeof(timeString)-1