All versions 2.X and above of http-analyze are fully Year 2000 compliant. There will be no problems with date-related functions after the year 1999 as long as the operating system itself is Year 2000 compliant also. Year 2000 compliant means, that the software does not produce errors in date-related data or calculations or experience loss of functionality as a result of the transition to the year 2000. This Year 2000 compliance statement is not a product warranty. http-analyze is provided under the terms of the license agreement included in each distribution.


The analyzer depends on the timestamp found in the logfile entries produced by a web server. For the NCSA Common Logfile Format and the W3C Extended Logfile Format a Year 2000 compliant date format was choosen from the beginning on. This unique date format is - and ever was - required by http-analyze to be able to generate a statistics report, so there are no problems unless those caused by your Operating System (see below).

To retain compatibility with previous versions of the log analyzer, http-analyze generates two-digit years in some output filenames. However, those files are placed in a subdirectory containing the year in four digits, which makes all output filenames fully Year 2000 compliant.

The date format in the -I and -E options allows specification of a year using only two digits. http-analyze interprets values greater and equal to 69 in 1900 and values lower than 69 in 2000. This way, the analyzer covers the whole range of the time representation in modern Operating Systems. However, any year can always be specified unambiguously by using four digits.


Rumors has it that some systems don't recognize the Year 2000 as a leap year. Although http-analyze computes leap years for itself correctly, it maps dates into weekdays using the localtime(3) function, which might fail if the OS doesn't recognize the Year 2000 as a leap year.

Actually, there is a date-related function in modern operating systems, which may cause problems after the year 2037. For those interested in the technical details, here's why:

In operating systems the date is often represented in seconds since a certain date. For example, in Unix systems the date is represented as seconds since the birth of the OS at January, 1st 1970. This value is stored in a signed long (4-byte) data object, so it can represent as much as 2147483648 seconds, which equals 35791394 minutes = 596523 hours = 24855 days = 68 years. Therefore, most clocks in traditional Unix systems will overflow at January, 1st 2038 if the OS is not updated before this date. Since http-analyze uses several data structures depending on the operating system's idea of the time (for example, the tm_year variable contains the years since 1900), the software has to be updated also before the year 2038 in order to take advantage of the time representation in future OS versions.