c форматирование времени

Как мне отформатировать структуру time_t примерно так: год-месяц-день ч: м: с, я уже пытался использовать ctime:

time_t t = time((time_t*) NULL);
char *t_format = ctime(&t);

но это не дает мне желаемых результатов

пример: 2011-11-10 10:25:03. Мне нужна строка, содержащая результат, чтобы я мог записать ее в файл. Спасибо


person Onica Radu    schedule 11.12.2011    source источник


Ответы (2)


Используйте strftime из time.h следующим образом:

char tc[256];
strftime(tc, 256, "%Y-%m-%d %H:%M:%S", tm);
person clyfe    schedule 11.12.2011
comment
Также сначала позвоните struct tm *tm = localtime(&t);. - person mark4o; 11.12.2011
comment
Я понял, и, кстати, вы можете написать %Y-%m-%d %H:%M:%S как %F %r - person Onica Radu; 11.12.2011
comment
@onica Нет, %H:%M:%S — это не то же самое, что %r, а %T. - person jørgensen; 11.12.2011