Zeitstempel
Aus Fedorawiki.de
Zeitstempel/Timestamp
Ein Format für eine Zeitangabe. Es gibt die vergangenen Sekunden seit Mitternacht des 1. Januars 1970 UTC an. Ein solcher Zeitstempel ist z.b. 1251313292.
Für programmierte Berechnungen ist dieses Format deutlich einfacher zu handhaben als der Umgang mit einem Datum, Stunden, Minuten, Sekunden und so fort. Insbesondere weil die Monate eine unterschiedliche Anzahl von Tagen haben und auch Schaltjahre bei Berechnungen berücksichtigt werden müssen. Deshalb nutzen viele Programme wie auch GNOME und Firefox dieses Format für interne Berechnungen und ihre Einstellungsdateien.
$ date +%s
gibt dieses Datumsformat des aktuellen Zeitpunkts aus.
Um aus dem Format ein gewöhnliches Datum zu berechnen wird das Programm date mit folgenden Angaben ausgeführt:
$ date -ud@1251313292
Und
$ date -d '26 Aug 2009 19:01:32 UTC' +%s
ermittelt den Zeitstempel für ein bestimmtes Datum.
Zeitwerte sind im header <time.h> geregelt. In 32-Bit Systemen ist time_t eine ganze Zahl (<limits.h>)
Das kleinste darstellbare Datum ist der 1901-12-13 und das größte ist 2038-01-19. Am 2038-01-19 um 03:14:07 UTC endet diese Form der Darstellung
und führt zu einem Programmfehler.
Siehe: http://en.wikipedia.org/wiki/Year_2038_problem
Nutzen wir eine 64-bit Zahl ist das Problem vorerst gelöst und wir in etwa 292 Milliarden Jahren, am Sonntag dem 4. Dezember wieder interessant; also 292.277.026.596 Anno Domini.
$ touch $Dateiname
aktualisiert die Zugriffs- und Änderungszeit einer Datei. Existiert die Datei nicht so wird sie ohne Inhalt angelegt.
Mittels
$ stat -c '%Y' $Dateiname
kann dieser "Zeitstempel" angesehen werden.
GAWK
Hier noch eine gawk-Zeile die ebenfalls das Format ändert:
gawk '{print strftime("%c", $0)}'
Das Prinzip:
$ date +%s | gawk '{print strftime("%c", $0)}'
Und die Beispiel-Zeit:
$ echo 1251313292 | gawk '{print strftime("%c", $0)}'
PHP
<?php
date_default_timezone_set('UTC');
echo time(), " - "; // Ausgabe des Zeitstempels in UTC
echo mktime(19, 01, 32, 8, 26, 2009), " - "; // Zeitstempel des bestimmten Tags ausgeben.
// ergibt unseren Beispielzeitstempel 1251313292
// Am Mittwoch, den 26.08.2009 19:01:32 UTC war der Zeitstempel genau 1251313292
echo date("d.m.Y",1251313292)," - ",date("H:i",1251313292)," Uhr";
// Der Beispielzeitstempel aus Datum mit Uhrzeit
?>