Provided by: manpages-de-dev_2.5-1_all bug

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"
           , in

       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.

       ┌───────────────┬───────────────────────┬─────────────────────────────────┐
       │SchnittstelleAttributWert                            │
       ├───────────────┼───────────────────────┼─────────────────────────────────┤
       │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  4.15  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>.

                                        15. September 2017                               CTIME(3)