Provided by: manpages-de-dev_2.16-1_all 

BEZEICHNUNG
asctime, ctime, gmtime, localtime, mktime - Datum und Zeit in aufgeschlüsselte Zeit oder ASCII umwandeln
ÜBERSICHT
#include <time.h>
char *asctime(const struct tm *tm);
char *asctime_r(const struct tm *tm, char *puffer);
char *ctime(const time_t *timep);
char *ctime_r(const time_t *timep, char *puffer);
struct tm *gmtime(const time_t *timep);
struct tm *gmtime_r(const time_t *timep, struct tm *ergebnis);
struct tm *localtime(const time_t *timep);
struct tm *localtime_r(const time_t *timep, struct tm *ergebnis);
time_t mktime(struct tm *tm);
Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):
asctime_r(), ctime_r(), gmtime_r(), localtime_r():
_POSIX_C_SOURCE
|| /* Glibc-Versionen <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
BESCHREIBUNG
Die Funktionen ctime(), gmtime() und localtime() benötigen ein Argument des Datentyps time_t, welches die
Kalenderzeit darstellt. Wenn sie als absoluter Zeitwert interpretiert wird, stellt sie die Unixzeit dar,
die Sekunden, die seit dem 1. Januar 1970, 00:00.00 Uhr koordinierter Weltzeit (UTC) verstrichen sind.
Die Funktionen asctime() und mktime() benötigen jeweils ein Argument das eine aufgeschlüsselte Zeitangabe
darstellt, die in Jahr, Monat, Tag usw. aufgeteilt ist.
Aufgeschlüsselte Zeit wird in der Struktur tm gespeichert, die in <time.h> wie folgt definiert ist:
struct tm {
int tm_sec; /* Sekunden (0-60) */
int tm_min; /* Minuten (0-59) */
int tm_hour; /* Stunden (0-23) */
int tm_mday; /* Monatstag (1-31) */
int tm_mon; /* Monat (0-11) */
int tm_year; /* Jahr - 1900 */
int tm_wday; /* Wochentag (0-6, Sonntag = 0) */
int tm_yday; /* Jahrestag (0-365, 1. Jan = 0) */
int tm_isdst; /* Sommerzeit */
};
Die Elemente der Struktur tm sind:
tm_sec die Anzahl der Sekunden nach der vollen Minute, normalerweise im Bereich 0 bis 59, kann aber
bis zu 60 sein, um Schaltsekunden zu erlauben.
tm_min die Anzahl der Minuten nach der vollen Stunde, im Bereich 0 bis 59.
tm_hour die Anzahl der Stunden nach Mitternacht, im Bereich 0 bis 23.
tm_mday der Tag des Monats, im Bereich 1 bis 31.
tm_mon die Anzahl der Monate seit Januar, im Bereich 0 bis 11.
tm_year die Anzahl der Jahre nach 1900.
tm_wday die Anzahl der Tage seit Sonntag, im Bereich 0 bis 6.
tm_yday die Anzahl der Tage seit dem 1. Januar, im Bereich 0 bis 365.
tm_isdst ein Schalter, der anzeigt, ob in der angegebenen Zeit Sommerzeit ist. Der Wert ist in der
Sommerzeit positiv, Null wenn nicht und negativ wenn die Information nicht verfügbar ist.
Der Aufruf ctime(t) entspricht asctime(localtime(t)). Er konvertiert die Kalenderzeit t in eine durch
Null beendete Zeichenkette der Form
"Wed Jun 30 21:49:08 1993\n"
Die Abkürzungen für die Wochentage sind »Sun«, »Mon«, »Tue«, »Wed«, »Thu«, »Fri« und »Sat«. Die
Abkürzungen für die Monate sind »Jan«, »Feb«, »Mar«, »Apr«, »May«, »Jun«, »Jul«, »Aug«, »Sep«, »Oct«,
»Nov« und »Dec«. Der Rückgabewert zeigt auf eine statisch reservierte Zeichenkette, die durch
nachfolgende Aufrufe von Datums- und Zeitfunktionen überschrieben werden darf. Die Funktion setzt auch
die externen Variablen tzname, timezone und daylight (siehe tzset(3)) mit Informationen über die aktuelle
Zeitzone. Die ablaufinvariante Version ctime_r() tut dasselbe, speichert aber die Zeichenkette in einem
vom Benutzer gelieferten Zeichenkettenpuffer, der Platz für mindestens 26 Byte haben sollte. tzname,
timezone und daylight müssen nicht gesetzt sein.
Die Funktion gmtime() wandelt die Kalenderzeit timep in eine aufgeschlüsselte Entsprechung der Zeit um,
die in koordinierter Weltzeit (UTC) ausgedrückt wird. Sie kann NULL zurückgeben, wenn das Jahr nicht in
eine Ganzzahl passt. Der Rückgabewert zeigt auf eine statisch reservierte Struktur, die von nachfolgenden
Aufrufen irgendwelcher Datums- und Zeitfunktionen überschrieben werden kann. Die Funktion gmtime_r() tut
das gleiche, speichert aber die Daten in einer vom Benutzer gelieferten Struktur.
Die Funktion localtime() wandelt die Kalenderzeit timep in eine aufgeschlüsselte Entsprechung der Zeit
um, ausgedrückt relativ zu der vom Benutzer angegebenen Zeitzone. Die Funktion arbeitet, als ob sie
tzset(3) aufrufen würde und setzt die externen Variablen tzname auf die Informationen über die aktuelle
Zeitzone, timezone auf die Differenz zwischen koordinierter Weltzeit (UTC) und der lokalen Standardzeit
in Sekunden und daylight auf einen Wert ungleich Null, falls während einem Teil des Jahres
Sommerzeitregeln gelten. Der Rückgabewert zeigt auf eine statisch reservierte Struktur, die von
nachfolgenden Aufrufen irgendwelcher Datums- und Zeitfunktionen überschrieben werden kann. Die Funktion
localtime_r() tut das gleiche, speichert aber die Daten in einer vom Benutzer gelieferten Struktur.
tzname, timezone und daylight müssen nicht gesetzt sein.
Die Funktion asctime() wandelt den aufgeschlüsselten Zeitwert tm in eine durch Null beendete Zeichenkette
mit dem gleichen Format wie ctime(). Der Rückgabewert zeigt auf eine statisch reservierte Zeichenkette,
die von nachfolgenden Aufrufen irgendwelcher Datums- und Zeitfunktionen überschrieben werden kann. Die
Funktion asctime_r() tut das gleiche, speichert aber die Zeichenkette in einem vom Benutzer gelieferten
Zeichenkettenpuffer, der Platz für mindestens 26 Byte haben sollte.
Die Funktion mktime() wandelt die aufgeschlüsselten Zeitstruktur, die als lokale Zeit ausgedrückt wird,
in eine Entsprechung der Kalenderzeit. Die Funktion ignoriert die Werte, die der Aufrufende in den
Feldern tm_wday und tm_yday mitgegeben hat, egal ob in der Zeit der mitgegebenen Struktur tm Sommerzeit
ist oder nicht: Ein positiver Wert bedeutet, dass Sommerzeit ist, Null bedeutet, dass keine Sommerzeit
ist und ein negativer Wert bedeutet, dass mktime() (mit Zeitzoneninformationen und Systemdatenbanken)
versuchen sollte zu bestimmen, ob zur angegebenen Zeit Sommerzeit ist oder nicht.
Die Funktion mktime() ändert die Felder der Struktur tm wie folgt: tm_wday und tm_yday werden auf die
Werte gesetzt, die vom Inhalt anderer Felder bestimmt werden; falls Elemente der Stuktur außerhalb ihres
erlaubten Intervalls liegen, werden sie normalisiert (so dass zum Beispiel der 40. Oktober auf 9.
November geändert wird); tm_isdst wird (unabhängig vom anfänglichen Wert) auf einen positiven Wert
beziehungsweise 0 gesetzt, um anzuzeigen, ob zur angegebenen Zeit Sommerzeit ist oder nicht. Der Aufruf
von mktime() setzt außerdem die Variable tzname mit Informationen über die aktuelle Zeitzone.
Falls die angegebene aufgeschlüsselte Zeit nicht als Kalenderzeit (Unixzeit in Sekunden) dargestellt
werden kann, gibt mktime() (time_t) -1 zurück und verändert die Elemente der aufgeschlüsselten
Zeitstruktur nicht.
RÜCKGABEWERT
Im Erfolgsfall liefern gmtime() und localtime() einen Zeiger auf ein struct tm zurück.
Im Erfolgsfall liefern gmtime_r() und localtime_r() die Adresse der Struktur zurück, auf die result
zeigt.
Im Erfolgsfall liefern asctime() und ctime() einen Zeiger auf eine Zeichenkette zurück.
Im Erfolgsfall liefern asctime_r() und ctime_r() einen Zeiger zurück, auf den buf zeigt.
Im Erfolgsfall liefert mktime() die Kalenderzeit (Sekunden seit der Epoch) zurück, ausgedrückt als Wert
des Typs time_t.
Im Fehlerfall liefert mktime() den Wert (time_t) -1 zurück. Die verbliebenen Funktionen liefern NULL im
Fehlerfall zurück. Im Fehlerfall wird errno gesetzt, um die Fehlerursache anzuzeigen.
FEHLER
EOVERFLOW
Das Ergebnis kann nicht dargestellt werden.
ATTRIBUTE
Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
┌────────────────┬───────────────────────┬─────────────────────────────────┐
│ Schnittstelle │ Attribut │ Wert │
├────────────────┼───────────────────────┼─────────────────────────────────┤
│ asctime() │ Multithread-Fähigkeit │ MT-Unsafe race:asctime locale │
├────────────────┼───────────────────────┼─────────────────────────────────┤
│ asctime_r() │ Multithread-Fähigkeit │ MT-Safe locale │
├────────────────┼───────────────────────┼─────────────────────────────────┤
│ ctime() │ Multithread-Fähigkeit │ MT-Unsafe race:tmbuf │
│ │ │ race:asctime env locale │
├────────────────┼───────────────────────┼─────────────────────────────────┤
│ ctime_r(), │ Multithread-Fähigkeit │ MT-Safe env locale │
│ gmtime_r(), │ │ │
│ localtime_r(), │ │ │
│ mktime() │ │ │
├────────────────┼───────────────────────┼─────────────────────────────────┤
│ gmtime(), │ Multithread-Fähigkeit │ MT-Unsafe race:tmbuf env locale │
│ localtime() │ │ │
└────────────────┴───────────────────────┴─────────────────────────────────┘
KONFORM ZU
POSIX.1-2001. C89 und C99 spezifizieren asctime(), ctime(), gmtime(), localtime() und mktime().
POSIX.1-2008 kennzeichnet asctime_r(), ctime() und ctime_r() als veraltet und empfiehlt stattdessen die
Benutzung von strftime(3).
ANMERKUNGEN
Die vier Funktionen asctime(), ctime(), gmtime() und localtime() geben einen Zeiger auf statische Daten
zurück und sind daher nicht multithread-fähig. Multithread-fähige Versionen asctime_r(), ctime_r(),
gmtime_r() und localtime_r werden durch SUSv2 spezifiziert.
POSIX.1-2001 sagt: »Die Funktionen asctime(), ctime(), gmtime() und localtime() müssen Rückgabewerte in
einem von zwei statischen Objekten liefern: einer aufgeschlüsselten Zeit und einem Feld des Typs char.
Das Ausführen irgendeiner der Funktionen könnte die zurückgegebene Information überschreiben, die von
diesen beiden Objekten durch andere Funktionen zurückgegeben wurden.« Dies kann in der
Glibc-Implementierung vorkommen.
In vielen Implementierungen, einschließlich Glibc, wird a 0 in tm_mday als letzter Tag des vorhergehenden
Monats interpretiert.
Die Glibc-Version von struct tm hat zusätzliche Felder.
const char *tm_zone; /* Abkürzung der Zeitzone */
definiert, wenn _BSD_SOURCE gesetzt war, bevor <time.h> eingebunden wurde. Dies ist eine BSD-Erweiterung,
die in 4.3BSD-Reno enthalten ist.
Gemäß POSIX.1-2004 wird localtime() benötigt, um sich so zu verhalten, als sei tzset(3) aufgerufen
worden, während localtime_r() nicht diese Anforderung stellt. Für portierbaren Code sollte tzset(3) vor
localtime_r() aufgerufen werden.
SIEHE AUCH
date(1), gettimeofday(2), time(2), utime(2), clock(3), difftime(3), strftime(3), strptime(3), timegm(3),
tzset(3), time(7)
KOLOPHON
Diese Seite ist Teil der Veröffentlichung 5.03 des Projekts Linux-man-pages. Eine Beschreibung des
Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden
sich unter https://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <krd@gulu.net>, Chris Leick
<c.leick@vollbio.de>, Mario Blättermann <mario.blaettermann@gmail.com> und Helge Kreutzmann
<debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an
<debian-l10n-german@lists.debian.org>.
6. März 2019 CTIME(3)