Mailinglist Archive: opensuse-de (6327 mails)

< Previous Next >
Re: Und schon schlägt Y2K zu
  • From: eilert@xxxxxxxxxxxxxxxxxxxxxxxx (Eilert Brinkmann)
  • Date: Sun Jan 02 17:59:35 2000
  • Message-id: <xtthfgw8id4.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>



"Marco Dieckhoff" <linux@xxxxxx> wrote:
Ich habe einen ähnlichen "Fehler" entdeckt, allerdings unter Perl.

Perl wertet die Jahreszahl (localtime(time)) als Jahr - 1900 aus, nicht als
zweistellige Zahl!

Das entspricht dem Verhalten der C-Funktion localtime(), wer auch
immer sich das ausgedacht hat.

2000 ist folglich = *100* + 1900.

Ich denke, hier tritt derselbe Fehler auf, eine Lösung weiss ich jedoch
nicht.

Aus `man perlfunc' im Abschnitt ueber localtime:

Also, $year is the number of years since 1900, that is, $year is
123 in year 2023, and not simply the last two digits of the year.
If you assume it is, then you create non-Y2K-compliant
programs--and you wouldn't want to do that, would you?

(Fassung vom 28.03.1999, eine aeltere Fassung, die ich hier habe
enthaelt nur den ersten Satz, aber der reicht auch schon.)

In anderen Worten: Mit Perl ist alles in Ordnung. Der Fehler steckt in
jedem einzelnen Programm, das annimmt, hier eine zweistellige
Jahreszahl zu bekommen. Loesung: Jedes dieser Programme muss
korrigiert werden. Entsprechendes gilt natuerlich auch fuer alle
Programme, die dieses Problem bei Benutzung der C-Funktion localtime()
haben.

Eilert

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Eilert Brinkmann -- Universitaet Bremen -- FB 3, Informatik
eilert@xxxxxxxxxxxxxxxxxxxxxxxx - eilert@xxxxxxx - eilert@xxxxxxxxxxxxxx
http://www.informatik.uni-bremen.de/~eilert/

---------------------------------------------------------------------
To unsubscribe, e-mail: suse-linux-unsubscribe@xxxxxxxx
For additional commands, e-mail: suse-linux-help@xxxxxxxx


< Previous Next >