From d1912872e723fa3c421886e894e6aa6ffbe18440 Mon Sep 17 00:00:00 2001 From: Dave Love Date: Fri, 28 Jan 2000 23:44:23 +0000 Subject: (timezone-fix-time): Window against 69 for two-digit years. Deal with three-digit years. --- lisp/timezone.el | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'lisp/timezone.el') diff --git a/lisp/timezone.el b/lisp/timezone.el index 8f21f8f3765..d6473158f36 100644 --- a/lisp/timezone.el +++ b/lisp/timezone.el @@ -197,8 +197,8 @@ Understands the following styles: (when year (setq year (match-string year date)) ;; Guess ambiguous years. Assume years < 69 don't predate the - ;; Unix Epoch, so are 2000+. Three-digit years -- do they ever - ;; occur? -- are (arbitrarily) assumed to be 21st century. + ;; Unix Epoch, so are 2000+. Three-digit years are assumed to + ;; be relative to 1900. (if (< (length year) 4) (let ((y (string-to-int year))) (if (< y 69) @@ -310,10 +310,12 @@ If LOCAL is nil, it is assumed to be GMT. If TIMEZONE is nil, use the local time zone." (let* ((date (timezone-parse-date date)) (year (string-to-int (aref date 0))) - (year (cond ((< year 50) + (year (cond ((< year 69) (+ year 2000)) ((< year 100) (+ year 1900)) + ((< year 1000) ; possible 3-digit years. + (+ year 1900)) (t year))) (month (string-to-int (aref date 1))) (day (string-to-int (aref date 2))) -- cgit v1.2.1