Wie berechnet linux/ein programm die uhrzeit?

oyster-manu

oyster-manu

toast
linux zählt doch die vergangenen sekunden seit dem 1.1.1978 (auf jeden fall ein von einem bestimmten datum aus).
das problem ist ja nun, dass 100sek nicht gleich 1min ist.
ich habe mir dazu folgende gedanken gemacht:
linux teilt die gezählten sekunden durch 60 (und erhält als ergebnis die verstrichenen minuten), dann nochmal durch 60 (und erhält die verstrichenen stunden) und zum schluß durch 24 und erhält die verstrichenen tage.
dies macht linux mindestenst einmal in der sekunde und gibt die ergebnisse in diesem format aus: (dd:)hh:mm(:ss)
so müsste man doch das problem dass 1min ungleich 100sek ist, gelöst haben.
meine frage ist nun, ob linux dies auch tatsächlich so macht oder ob es eine komplett andere methode gibt um die uhrzeit auszurechnen.

lg
manu
 
leider hab ich keinen plan von dem was da von funktionen geblubbert wird. kannste mir vllt die antwort verständlich aus dem text formulieren?
 
Das, was saiki dir da als Link gegeben hat, hat mit deiner Frage IMHO nur wenig zu tun. Aber ich denke, so wie du es dir vorstellst, sollte es im Prinzip laufen. Im Prinzip zählt Linux intern einfach nur brutal die Sekunden, die seit dem 1.1.1970 0 Uhr vergangen sind:
Code:
polaris:~$ date +%s
1140379646
Die eigentliche Umrechunung erfolgt erst, wenn man das Datum in einer "menschenfreundlichen" lesbaren Ausgabe haben möchte. Dies machen einige interne C-Funktionen wie z.B. "strftime (3)" und natürlich "date (1)" Dabei müssen natürlich die Zonendaten berücksichtigt werden, da die interne Uhr die "Universal Time" (UTC) zählt. Die Systemzeit muss folglich nicht mit der CMOS-Zeit identisch sein, siehe "man 8 clock"

Viele Grüße,

Pepinot
 

Ähnliche Themen

Nur bestimmtes Format für Eingabe

Zurück
Oben