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 */
    int tm_min;         /* Minuten */
    int tm_hour;        /* Stunden */
    int tm_mday;        /* Monatstag */
    int tm_mon;         /* Monat */
    int tm_year;        /* Jahr */
    int tm_wday;        /* Wochentag */
    int tm_yday;        /* Jahrestag */
    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.
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 sicher für Threads. Die für Threads sicheren Versionen
  
asctime_r(), 
ctime_r(), 
gmtime_r() und 
localtime_r
  werden durch SUSv2 spezifiziert und sind seit Libc 5.2.5 verfügbar.
 
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 3.42 des Projekts Linux-
  
man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler
  gemeldet werden können, finden sich unter
  
http://www.kernel.org/doc/man-pages/.
 
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother
  <krd@gulu.net> und Chris Leick <c.leick@vollbio.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>.