--- webalizer-2.01.6.orig/parser.c
+++ webalizer-2.01.6/parser.c
@@ -220,6 +220,8 @@
 int parse_record_web(char *buffer)
 {
    int size;
+   time_t utime;
+   struct tm tm;
    char *cp1, *cp2, *cpx, *eob, *eos;
 
    size = strlen(buffer);                 /* get length of buffer        */
@@ -303,6 +305,17 @@
    if ( (log_rec.datetime[0] != '[') ||
         (log_rec.datetime[3] != '/') ||
         (cp1 >= eob))  return 0;
+
+   /* !FIXME!: ad-hoc localtime */
+   cp2 = strptime(log_rec.datetime, "[%d/%b/%Y:%T ", &tm);
+   utime = mktime(&tm) - timezone - ((int) atoi(cp2)/100) * 60 * 60 -
+           ( atoi(cp2) % 100 ) * 60;  /* NO good! fixme! */
+   if ( debug_mode )
+	printf("fix timestamp: %s => ", log_rec.datetime);
+   strftime(log_rec.datetime, sizeof(log_rec.datetime),
+	    "[%d/%b/%Y:%T %z]", localtime(&utime));
+   if ( debug_mode )
+	printf("%s\n", log_rec.datetime);
 
    /* HTTP request */
    cpx = cp1;
