C言語でミリ秒まで時刻を表示する

ただでさえ疎いC言語なのに...。かなりのやっつけw

#include <stdio.h>
#include  <time.h>
#include  <sys/time.h>
int main() {
    struct timeval ct;
    struct tm *t;

    gettimeofday( &ct, NULL );
    t = localtime(&ct.tv_sec);

    printf("%04d-%02d-%02d %02d:%02d:%02d.%03d\n",
		t->tm_year+1900,
		t->tm_mon+1,
		t->tm_mday,
        	t->tm_hour,
		t->tm_min,
		t->tm_sec,
        	(int)ct.tv_usec/1000
	);

    return 0;
}
実行するとこんな感じ。

2012-02-26 22:49:49.979