Provided by: manpages-de-dev_1.11-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 >= 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE ||
              _POSIX_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

       Jede dieser Funktionen gibt den beschriebenen Wert  oder  NULL  zurück  (-1  im  Fall  von
       mktime()), falls ein Fehler entdeckt wurde.

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()  sollen
       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.

              long tm_gmtoff;           /* Sekunden östlich von UTC */
              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.04  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 http://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>  und  Mario  Blättermann  <mario.blaettermann@gmail.com>
       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>.

                                          19. April 2015                                 CTIME(3)