localtime fehler oder "Das Ende der Welt" – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self?srt=yes localtime fehler oder "Das Ende der Welt" Thu, 01 Sep 05 19:08:34 Z https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867550?srt=yes#m867550 https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867550?srt=yes#m867550 <p>Hallo Forumer und Forumerinnen,</p> <p>es ist schon eine ganze Zeit lang her, als ich regelmäßig hier im Forum war. Aber ich stehe mal wieder vor einem Problem und da viel mir das gute alte selfhtml-Forum ein....</p> <p>Beim rumspielen mit localtime viel mir auf, dass die Funktion bei manchen in der Zukunft liegenden Werten Sekunden das Jahr 1970 ausspuckte.<br> Ich bin mir sicher, dass das bekannt ist, habe aber hier nicht finden können.</p> <p>Ich hab das Musterscript (von selfhtml) mal schnell in ne Schleife gepackt und musste sehen, das ende der Zeitrechnung ist bereits 2037 erreicht ist, besser gesagt, wir fallen dan in das Jahr 1902 um von dort an, bis ins Jahr 1970 zu leben und im Jahr 1970 werden wir dann hängenbleiben.</p> <p>Gibt es bereits eine neuere Funktion, die etwas zukunftssicherer ist, oder mache ich da irgendwo einen systematischen Fehler?</p> <p>Ich hab das Schleifenscript mal unten angehängt.<br> das Ergebnis des Scriptes könnt Ihr Euch für kurze Zeit unter:<br> http://www.wasser.de/telefon-alt/forum/test.pl ansehen.<br> Danke für Eure Hilfe!</p> <p>Gruß Wilm T. Klaas (alias Wasser)</p> <p>---------------------------------------<br> #!/usr/bin/perl -w</p> <p>use strict;<br> use CGI::Carp qw(fatalsToBrowser);</p> <p>print "Content-type: text/html\n\n";</p> <p>my $i = 1;</p> <p>while ($i <= 1000){<br>         #jaja, das stimmt nicht 100% sollte aber zum testen reichen<br>  my $gtime = $i * 3600 * 24 * 365;</p> <p>my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat,<br>      $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime($gtime);<br>  my $CTIME_String = localtime($gtime);<br>  $Monat+=1;<br>  $Jahrestag+=1;<br>  $Monat = $Monat < 10 ? $Monat = "0".$Monat : $Monat;<br>  $Monatstag = $Monatstag < 10 ? $Monatstag = "0".$Monatstag : $Monatstag;<br>  $Stunden = $Stunden < 10 ? $Stunden = "0".$Stunden : $Stunden;<br>  $Minuten = $Minuten < 10 ? $Minuten = "0".$Minuten : $Minuten;<br>  $Sekunden = $Sekunden < 10 ? $Sekunden = "0".$Sekunden : $Sekunden;<br>  $Jahr+=1900;<br>  my @Wochentage = ("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");<br>  my @Monatsnamen = ("","Januar","Februar","M&auml;rz","April","Mai","Juni",<br>            "Juli","August","September","Oktober","November","Dezember");</p> <p>print "$Jahr<br>\n";</p> <p>$i++;<br>  }</p> localtime fehler oder "Das Ende der Welt" Thu, 01 Sep 05 19:18:18 Z https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867557?srt=yes#m867557 https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867557?srt=yes#m867557 <p>Hallo Wilm,</p> <p>Die Unixzeit, die durch localtime ermittelt wird, wird sehr gut in Wikipedia beschrieben:<br> <a href="http://de.wikipedia.org/wiki/Unix-Zeit" rel="nofollow noopener noreferrer">http://de.wikipedia.org/wiki/Unix-Zeit</a></p> <p>Das daraus resultierende Jahr-2038-Problem wird ebenfalls in Wikipedia beschrieben:<br> <a href="http://de.wikipedia.org/wiki/Jahr-2038-Problem" rel="nofollow noopener noreferrer">http://de.wikipedia.org/wiki/Jahr-2038-Problem</a></p> <p>Der Beste Satz daraus:<br> Technisch betrachtet "behebt" die 64-Bit-Umstellung das Jahr-2038-Problem auch nicht, sie verschiebt es nur etwa 290 Milliarden Jahre in die Zukunft. Das absehbare Jahr-292.471.208.678-Problem wird allerdings in Fachkreisen nicht als dringlich angesehen.</p> <p>Herzliche Grüße aus Weinsberg<br> Helmut Weber</p> <div class="signature">-- <br> -------------------------------------------<br> Mode ist eine Variable, Stil eine Konstante </div> localtime fehler oder "Das Ende der Welt" Thu, 01 Sep 05 19:21:24 Z https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867556?srt=yes#m867556 https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867556?srt=yes#m867556 <p>hi,</p> <blockquote> <p>Beim rumspielen mit localtime viel mir auf, dass die Funktion bei manchen in der Zukunft liegenden Werten Sekunden das Jahr 1970 ausspuckte.<br> Ich bin mir sicher, dass das bekannt ist, habe aber hier nicht finden können.</p> </blockquote> <p>tja, das liegt daran, dass die obere grenze eines signed integer mit 16 bit, also ein double word, bei 2.147.483.647 liegt.<br> tja, und 1.1.1970, 0 uhr plus 2.147.483.647 sekunden - kommt irgendwo im jahre 2037 aus.</p> <blockquote> <p>Ich hab das Musterscript (von selfhtml) mal schnell in ne Schleife gepackt und musste sehen, das ende der Zeitrechnung ist bereits 2037 erreicht ist, besser gesagt, wir fallen dan in das Jahr 1902 um von dort an, bis ins Jahr 1970 zu leben und im Jahr 1970 werden wir dann hängenbleiben.</p> </blockquote> <p>tja, zurück nach 1902 geht's dann, weil wir uns da an der negativen untergrenze des double word integers befinden - 1.1.1970 plus -2.147.483.648 sekunden.</p> <blockquote> <p>Gibt es bereits eine neuere Funktion, die etwas zukunftssicherer ist, oder mache ich da irgendwo einen systematischen Fehler?</p> </blockquote> <p>umstellung auf 64 bit integer, quad word, löst das problem erst mal auf ziemlich lange sicht ...</p> <p>aber so lange das nicht alle systeme verwenden, endet die (EDV-)zukunft erst mal im jahre 2037.<br> mir wurscht - das sind beispielsweise immer noch um die 32 selftreffen bis da hin ...</p> <p>gruß,<br> wahsaga</p> <div class="signature">-- <br> /voodoo.css:<br> #GeorgeWBush { position:absolute; bottom:-6ft; } </div> localtime fehler oder "Das Ende der Welt" Thu, 01 Sep 05 19:22:37 Z https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867552?srt=yes#m867552 https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867552?srt=yes#m867552 <p>Hi,</p> <blockquote> <p>Beim rumspielen mit localtime viel mir auf, dass die Funktion bei manchen in der Zukunft liegenden Werten Sekunden das Jahr 1970 ausspuckte.<br> Ich bin mir sicher, dass das bekannt ist, habe aber hier nicht finden können.</p> </blockquote> <p>ja, das ist altbekannt. Die IETF hat auch bereits für die Zukunft <a href="http://www.ietf.org/rfc/rfc2550.txt" rel="nofollow noopener noreferrer">vorgesorgt</a>.</p> <blockquote> <p>Ich hab das Musterscript (von selfhtml) mal schnell in ne Schleife gepackt und musste sehen, das ende der Zeitrechnung ist bereits 2037 erreicht ist,</p> </blockquote> <p>Wenn die Menge der Sekunden seit dem 1.1.1970 2^31-1 erreicht hat, sofern ich gerade nicht mit den Potenzen durcheinander gekommen bin.</p> <blockquote> <p>Gibt es bereits eine neuere Funktion, die etwas zukunftssicherer ist,</p> </blockquote> <p>Ja, beispielsweise <a href="http://search.cpan.org/~bobo/Time-Local-Extended-0.48/Extended.pm" rel="nofollow noopener noreferrer">Time::Local::Extended</a></p> <p>Cheatah</p> <div class="signature">-- <br> X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|<br> X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html<br> X-Will-Answer-Email: No<br> X-Please-Search-Archive-First: Absolutely Yes </div> localtime fehler oder "Das Ende der Welt" Fri, 02 Sep 05 07:18:37 Z https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867551?srt=yes#m867551 https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867551?srt=yes#m867551 <blockquote> <p>Gibt es bereits eine neuere Funktion, die etwas zukunftssicherer ist, oder mache ich da irgendwo einen systematischen Fehler?</p> </blockquote> <p>Wenn du nur Funktionen suchst um mit dem Datum zu rechnen kannst du mit Modulen arbeiten.<br> <a href="http://search.cpan.org/~stbey/Date-Calc-5.4/Calc.pod" rel="nofollow noopener noreferrer">http://search.cpan.org/~stbey/Date-Calc-5.4/Calc.pod</a><br> oder<br> <a href="http://search.cpan.org/author/SBECK/DateManip-5.44/Manip.pod" rel="nofollow noopener noreferrer">http://search.cpan.org/author/SBECK/DateManip-5.44/Manip.pod</a></p> <p>Struppi.</p> <div class="signature">-- <br> <a href="http://javascript.jstruebig.de/" rel="nofollow noopener noreferrer">Javascript ist toll</a> </div> localtime fehler oder "Das Ende der Welt" Thu, 01 Sep 05 19:41:12 Z https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867553?srt=yes#m867553 https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867553?srt=yes#m867553 <p>Hi Cheatah,</p> <p>schön Deinen Namen mal wieder zu lesen! :-)</p> <blockquote> <p>Ja, beispielsweise <a href="http://search.cpan.org/~bobo/Time-Local-Extended-0.48/Extended.pm" rel="nofollow noopener noreferrer">Time::Local::Extended</a></p> </blockquote> <p>Und Danke! Ich vermute genau das habe ich vergeblich gesucht.</p> <p>Gruß Wasser</p> localtime fehler oder "Das Ende der Welt" Thu, 01 Sep 05 19:52:32 Z https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867555?srt=yes#m867555 https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867555?srt=yes#m867555 <p>Sorry, bin wohl etwas rappelig!</p> <blockquote> <blockquote> <p>Ja, beispielsweise <a href="http://search.cpan.org/~bobo/Time-Local-Extended-0.48/Extended.pm" rel="nofollow noopener noreferrer">Time::Local::Extended</a></p> </blockquote> </blockquote> <blockquote> <p>Ich vermute genau das habe ich vergeblich gesucht.</p> </blockquote> <p>Und beim zweiten Blick, sehe ich, das das doch nur wieder ne Verschiebung um ein paar Jahre ist...</p> <p>Und dabei wollte ich "nur mal eben" das Jahr 2100 in unixzeit ablegen :-(</p> <p>Dennoch Danke und grüß mir mal bitte die anderen alten Hasen hier aus dem Forum</p> <p>Wasser</p> localtime fehler oder "Das Ende der Welt" Thu, 01 Sep 05 20:05:22 Z https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867554?srt=yes#m867554 https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867554?srt=yes#m867554 <p>Hi,</p> <blockquote> <p>schön Deinen Namen mal wieder zu lesen! :-)</p> </blockquote> <p>selbiges desgleichen :-) (Rest siehe anderes Posting.)</p> <p>Cheatah</p> <div class="signature">-- <br> X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|<br> X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html<br> X-Will-Answer-Email: No<br> X-Please-Search-Archive-First: Absolutely Yes </div> localtime fehler oder "Das Ende der Welt" Thu, 01 Sep 05 19:36:52 Z https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867558?srt=yes#m867558 https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867558?srt=yes#m867558 <p>Hallo Helmut,</p> <p>und danke für Deine schnelle Antwort.<br> Ich kann nicht glauben, das es noch keine Ersatzfunktion dafür gibt...<br> Ich kann doch auch mit perl in einem Größeren Zahlenfeld als 4294967296 rechnen.<br> Die entwicklung des Datums folgt festen Mathematischen gesetzen, warum also sollte man mit 32 bit nicht weiter rechnen können?</p> <p>________________________________________<br> #!/usr/bin/perl -w</p> <p>use strict;<br> use CGI::Carp qw(fatalsToBrowser);</p> <p>print "Content-type: text/html\n\n";</p> <p>my $test = 4294967296;<br> my $teste = $test + 10000;<br> print "$test  + 10000 = $teste";<br> ________________________________________</p> <p>Mehr brauch ich doch nicht, oder?</p> <p>Gruß Wilm t. Klaas (alias Wasser)</p> localtime fehler oder "Das Ende der Welt" Thu, 01 Sep 05 20:04:46 Z https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867559?srt=yes#m867559 https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867559?srt=yes#m867559 <p>Hi,</p> <blockquote> <p>Ich kann doch auch mit perl in einem Größeren Zahlenfeld als 4294967296 rechnen.</p> </blockquote> <p>Perl könnte die Mathematik erfunden haben, dadurch würde das Betriebssystem immer noch keinen anderen Wert für die Zeit liefern. Und dummerweise bezieht sich Perl bei derlei Dingen auf das System, das sowas schließlich schon implementiert haben muss.</p> <blockquote> <p>Die entwicklung des Datums folgt festen Mathematischen gesetzen,</p> </blockquote> <p>Nun ja, im Jahre 3320 stimmt der Gregorianische Kalender schon wieder nicht. Aber Du hast insofern Recht, als man dieses Datum errechnen kann :-)</p> <blockquote> <p>warum also sollte man mit 32 bit nicht weiter rechnen können?</p> </blockquote> <p>Kann man. Das System muss es aber auch hergeben.</p> <p>Cheatah</p> <div class="signature">-- <br> X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|<br> X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html<br> X-Will-Answer-Email: No<br> X-Please-Search-Archive-First: Absolutely Yes </div> localtime fehler oder "Das Ende der Welt" Thu, 01 Sep 05 20:17:20 Z https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867562?srt=yes#m867562 https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867562?srt=yes#m867562 <p>hi,</p> <blockquote> <p>Nun ja, im Jahre 3320 stimmt der Gregorianische Kalender schon wieder nicht.</p> </blockquote> <p>Das heißt, für welchen Tag genau sollte man da lieber keine wichtigen Termine vereinbaren ...?</p> <p>gruß,<br> wahsaga</p> <div class="signature">-- <br> /voodoo.css:<br> #GeorgeWBush { position:absolute; bottom:-6ft; } </div> localtime fehler oder "Das Ende der Welt" Fri, 02 Sep 05 04:08:04 Z https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867560?srt=yes#m867560 https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867560?srt=yes#m867560 <p>Hi,</p> <blockquote> <p>Perl könnte die Mathematik erfunden haben, dadurch würde das Betriebssystem immer noch keinen anderen Wert für die Zeit liefern. Und dummerweise bezieht sich Perl bei derlei Dingen auf das System, das sowas schließlich schon implementiert haben muss.</p> </blockquote> <p>Ich glaub, ich hab mich da nicht richtig ausgedückt, es geht mir nicht darum, elcher Sekundenwert vom System kommt, sondern darum, das der localtime nicht einmal mit größeren werten klar kommt, wenn man ihn diese liefert.</p> <p>Aber ich befürchte, ich muß mir da selber was zurechtstricken.<br> z.B.<br> Sekunden mit "modulo 60" etc.<br> Wochentag durch "modulo (3600 * 24 * 7)" dann mit "(3600 * 24 * x) < >"</p> <blockquote> <p>Nun ja, im Jahre 3320 stimmt der Gregorianische Kalender schon wieder nicht. Aber Du hast insofern Recht, als man dieses Datum errechnen kann :-)</p> </blockquote> <p>Das reicht mir als Raum für einen "blick nach vorne".</p> <blockquote> <blockquote> <p>warum also sollte man mit 32 bit nicht weiter rechnen können?<br> Kann man. Das System muss es aber auch hergeben.</p> </blockquote> </blockquote> <p>...Ja, wenn das System die Sekunden ab 1970 liefert, angenommen ich habe eine hardware Uhr, welche mir die Sekunden in eine Textdatei schreibt, oder einfach im System mehr als die 32 Bit belegt werden..</p> <p>Gruß Wilm</p> localtime fehler oder "Das Ende der Welt" Fri, 02 Sep 05 06:25:07 Z https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867561?srt=yes#m867561 https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867561?srt=yes#m867561 <p>Hi,</p> <blockquote> <p>Ich glaub, ich hab mich da nicht richtig ausgedückt, es geht mir nicht darum, elcher Sekundenwert vom System kommt, sondern darum, das der localtime nicht einmal mit größeren werten klar kommt, wenn man ihn diese liefert.</p> </blockquote> <p>die Funktion localtime wird an das Betriebssystem delegiert. Kommt dieses mit höheren Werten klar, liefert auch Perl das richtige Ergebnis.</p> <blockquote> <blockquote> <p>Nun ja, im Jahre 3320 stimmt der Gregorianische Kalender schon wieder nicht. Aber Du hast insofern Recht, als man dieses Datum errechnen kann :-)<br> Das reicht mir als Raum für einen "blick nach vorne".</p> </blockquote> </blockquote> <p>Ach, immer diese Kleingeistigen, die nicht bereit sind, über den Tellerrand zu blicken ;-)</p> <p>Cheatah</p> <div class="signature">-- <br> X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|<br> X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html<br> X-Will-Answer-Email: No<br> X-Please-Search-Archive-First: Absolutely Yes </div> localtime fehler oder "Das Ende der Welt" Thu, 01 Sep 05 20:33:15 Z https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867563?srt=yes#m867563 https://forum.selfhtml.org/self/2005/sep/1/localtime-fehler-oder-das-ende-der-welt/867563?srt=yes#m867563 <p>Hi,</p> <blockquote> <blockquote> <p>Nun ja, im Jahre 3320 stimmt der Gregorianische Kalender schon wieder nicht.<br> Das heißt, für welchen Tag genau sollte man da lieber keine wichtigen Termine vereinbaren ...?</p> </blockquote> </blockquote> <p>_das_ wiederum lässt sich nicht so genau sagen. Bei der letzten Korrektur wurden ganze zehn Tage ausgeglichen - wenn diese Menge repräsentativ ist, dürften sich Terminprobleme erst im Jahr 18962 (oder so) ergeben. Insofern muss ich Dich leider ein wenig im Unsicheren lassen. Ich verspreche aber, Dich rechtzeitig zu informieren, wenn ich etwas Genaueres erfahre.</p> <p>Cheatah</p> <div class="signature">-- <br> X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|<br> X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html<br> X-Will-Answer-Email: No<br> X-Please-Search-Archive-First: Absolutely Yes </div>