gmtime

CTIME(3)                    Linux-Programmierhandbuch                   CTIME(3)



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-2001 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.10 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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 die Mailingliste der Übersetzer ⟨debian-l10n-
       german@lists.debian.org⟩.



                                21. Dezember 2020                       CTIME(3)