#include <stdio.h>
#include <sys/time.h>
#include <time.h>
#include <unistd.h>

int main(void)
  {
  struct timeval tv;
  struct tm* ptm;
  char time_string[40];
  long milliseconds;

  /* Exakte Zeit holen und in einer timeval-Struktur ablegen */
  gettimeofday (&tv, NULL);
  ptm = localtime (&tv.tv_sec);
  /* Formatierung von Datum und Uhrzeit */
  strftime (time_string, sizeof (time_string), "%Y-%m-%d %H:%M:%S", ptm);
  /* Mikrosekunden --> Millisekunden */
  milliseconds = tv.tv_usec / 1000;
  /* Ausgabe mit Millisekunden hinter dem Dezimalpunkt */
  printf ("%s.%03ld\n", time_string, milliseconds);
  return 0;
  }

