Zeitstempel

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Zeitstempel mit Datumsanzeige und Datumsdruck, Marke ERFU, etwa 1960. Mechanisches Uhrwerk, Handaufzug, acht Tage Laufzeit.
Ein Zeitstempel auf einem Brief

Ein Zeitstempel (englisch timestamp) wird benutzt, um einem Ereignis einen eindeutigen Zeitpunkt zuzuordnen. Ein Beispiel dazu ist der Posteingangsstempel auf Briefen, obgleich sich deren Genauigkeit normalerweise nur auf den Tag (selten – vor allem im Bankbereich – auch noch im Stundenbereich) bezieht. Auch eingeblendete Zeitanzeigen bei Fotos und Videoaufnahmen werden als Zeitstempel bezeichnet. Diese Stempel auf Papier können kaum geändert oder vom Dokument getrennt werden. Andererseits ist nicht jede protokollierte Zeitangabe ein Zeitstempel, insbesondere dann nicht, wenn die Zeitangabe leicht verändert werden kann oder unzuverlässig erfolgt.

Ein digitaler Zeitstempel hat seiner Anwendung entsprechend ein definiertes Format. Er sollte fälschungssicher ausgeführt werden, da mit dem Zeitstempel Zeitpunkte von Ereignissen nachgewiesen werden sollen.

Digitale Zeitstempel sind Bescheinigungen, dass ein elektronisches Dokument (oder der Hashwert ebendieses Dokumentes) zu der angegebenen Zeit dem Aussteller des Zeitstempels vorgelegen hat. Sie ergänzen den Einsatz der elektronischen Signaturen im Rechtsverkehr. Gerichte können so das fristgerechte Eintreffen einer Nachricht elektronisch bestätigen. Archive können so nachweisen, dass ein Dokument seit der Archivierung nicht geändert wurde. Auch bei großen Ausschreibungen werden Zeitstempel als Beleg und Absicherung der Angebote verwendet. Das deutsche Signaturgesetz regelt die Anforderungen für die Ausstellung von qualifizierten Zeitstempeln als besonders hochwertige Form einer solchen Bescheinigung, bei der sichergestellt ist, dass die gültige gesetzliche Zeit aufgenommen wurde, und bei denen Fälschungen und Verfälschungen ausgeschlossen sind. Bei den heute verwendeten Verfahren unterschreibt der Aussteller eines qualifizierten Zeitstempels als unbeteiligter Dritter den Hash-Wert des bescheinigten Dokumentes zusammen mit der aktuellen Zeitangabe (Datum und Uhrzeit) mit einer qualifizierten elektronischen Signatur. Das Time-Stamp Protocol (RFC 3161) regelt die Übertragung der Informationen eines Zeitstempeldienstes im Internet.

In der modernen, computerisierten Nachrichten- und Datentechnik werden Zeitstempel wegen der global unterschiedlichen Zeitzonen und damit möglichen Missverständnissen entweder generell in der koordinierten Weltzeit UTC angegeben oder mit einer Angabe ergänzt, welche die lokale Abweichung zur Weltzeitzone anzeigt. Damit können Zeitstempel korrekt in verschiedene lokale Zeiten umgerechnet werden.

Unterschiede in den Zeitangaben[Bearbeiten]

Wichtig für die universelle Verwendung eines Zeitstempels mit lokaler Zeit (z. B. in einer E-Mail) ist die Ergänzung um die Angabe des Offsets zu UTC als numerische Angabe oder per Name wie MEZ bzw. MEST. Dies wird auch in ISO 8601 gefordert. Nur so kann ein vollständiger Vergleich von Zeitstempeln realisiert werden und das Berechnen von Zeitdifferenzen zwischen zwei Zeitstempeln ist möglich. Insbesondere in EDV-Systemen, die Daten aus mehreren Kontinenten verarbeiten, ist dies eine wichtige Anforderung.

Je nach Kontext beziehen sich Zeitangaben auf unterschiedliche Zeitsysteme bzw. Arten von Uhren: Ist ein Bezug zur „Wirklichkeit“ wichtig, so benutzt man den Wert einer Echtzeituhr. Ist hingegen nur die Reihenfolge (bzw. die Kausalordnung – siehe auch Happened-Before) der Ereignisse wichtig, benutzt man eine logische Uhr. Im einfachsten Falle ist dies ein Zähler bzw. eine Sequenznummer. Sind aber mehr als zwei Parteien an der Kommunikation beteiligt (das heißt es gibt mehr als zwei Orte, an denen Ereignisse auftreten können), so ist es notwendig, eine komplexere logische Uhr zu verwenden, wie zum Beispiel eine Lamport-Uhr oder Vektoruhren: Sie erlauben es, die Kausalordnung der Ereignisse zu bestimmen, ohne dass die (Echtzeit-)Uhren an den verschiedenen Orten exakt synchronisiert sein müssen. Solche logischen Uhren werden vor allem von Netzwerkprotokollen und Transaktionssystemen benutzt.

Zeitangaben in Dateisystemen[Bearbeiten]

Das bekannte FAT-Dateisystem nutzt für Zeitangaben die lokale Zeit mit einer Genauigkeit von 2 Sekunden. Die am weitesten verbreitete Art von Zeitstempeln in Dateisystemen ist wohl die Unixzeit, welche die Anzahl der Sekunden seit dem 1. Januar 1970 00:00 Uhr UTC (ohne Schaltsekunden) angibt. Die einheitlichen Unix-Datei-Zeitangaben erleichtern wesentlich die Vernetzung entfernt stehender Unix-Rechner und ihrer Dateisysteme im Internet. Bei Systemen, die diese Zahl unzureichend als vorzeichenbehaftete 32-Bit-Zahl kodieren, wird am 19. Januar 2038 ein Jahr-2038-Problem befürchtet. Eine Zeitauflösung in Mikrosekunden ist heute auf Digital-Rechnern nicht ungewöhnlich. Bei den Intel-Mikroprozessoren wurde ab dem Pentium der sog. Zeitstempel-Zähler (engl. Time Stamp Counter) integriert. Dieser kann mit dem Assembler-Befehl RDTSC ausgelesen werden. Bei der Synchronisierung von Dateisystemen kommt es unter Windows zu Problemen, da NTFS und FAT die Zeit mit verschiedener Genauigkeit auflösen.

Ausgabe einer Zeitinformation auf einem Rechner mit Zeitzone Europe/Berlin[Bearbeiten]

Mit PHP kann die Uhrzeit wie folgt angezeigt werden:

<?php
echo time();
// Unix-Zeit-Information des aktuellen Datums, z. B. 1214617821
 
echo mktime(0, 31, 30, 02, 14, 2009); 
// ergibt: 1234567890
// Am Samstag, 14.02.2009 00:31:30 MEZ war die Zeit genau 1234567890 
?>

Mit Visual Basic können Uhrzeiten wie folgt angezeigt werden:

Dim jetzt As Date = Date.Now
Console.WriteLine(jetzt.Ticks)
' ergibt: 633702174022502000

Dim jetzt As Date = #2/14/2009 12:31:00 AM#
Console.WriteLine(jetzt.Ticks)
' ergibt: 633701682600000000

Mit C# kann eine Uhrzeit wie folgt angezeigt werden:

System.DateTime jetzt = System.DateTime.Now; 
Console.WriteLine(jetzt.Ticks); 
// ergibt: 633702174022502000 
 
System.DateTime jetzt = 14/02/2009 00:31:00; 
Console.WriteLine(jetzt.Ticks); 
// ergibt: 633701682600000000

Mit Ada kann eine Uhrzeit wie folgt angezeigt werden:

with Ada.Calendar; use Ada.Calendar;
with GNAT.Calendar.Time_IO;
 
procedure currenttime is
   Now : Time := Clock;
begin
   GNAT.Calendar.Time_Io.Put_Time (Now, "%s");
   -- Achtung! Ada-Zeit beginnt 1970-01-01  00:00:00 UTC
end;

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]

 Commons: Zeitstempel – Sammlung von Bildern, Videos und Audiodateien