table of contents
other versions
- jessie 1.8-1
- stretch 1.22-1
- testing 2.12-1
- stretch-backports 2.11-1~bpo9+2
- unstable 2.12-1
other sections
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 >= 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.
"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.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 */
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.74 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. August 2014 |