CTIME(3)

BEZEICHNUNG
asctime, ctime, gmtime, localtime, mktime - wandle binäres Datum und Uhrzeit nach ASCII

ÜBERSICHT
#include <time.h>

char *asctime(const struct tm *timeptr);

char *ctime(const time_t *timep);

struct tm *gmtime(const time_t *timep);

struct tm *localtime(const time_t *timep);

time_t mktime(struct tm *timeptr);

extern char *tzname[2];
long int timezone;
extern int daylight;

BESCHREIBUNG
Die Funktionen ctime(), gmtime() und localtime() benötigen ein Argument des Datentyps time_t, welches die Calendar-Zeit darstellt. Bei Interpretation als absolute Zeit stellt sie die Anzahl der Sekunden dar, die seit dem 1. Januar 1970, 00:00.00 Uhr Universalzeit (UTC) verstrichen sind.

Die Funktionen asctime() und mktime() benötigen beide ein Argument das eine aufgeteilte Zeitangabe darstellt, d.h. eine binäre Darstellung, die in Jahr, Monat, Tag usw. aufgeteilt ist. Diese Angaben sind in einer 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, jedoch in Ausnahmefällen bis 61 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 im Monat, 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 Tag 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 Flag das anzeigt ob Sommerzeit herrscht für die angegebene Zeit. Der Wert ist positiv wenn Sommerzeit herrscht, Null wenn nicht, und negativ wenn die Information nicht verfügbar ist.

Die Funktion ctime() wandelt die Calendar-Zeit timep in einen String 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 einen statisch belegten String welcher durch nachfolgende Aufrufe von Datums-/Uhrzeitfunktionen überschrieben werden darf. Die Funktion setzt auch die externe Variable tzname mit Informationen über die aktuelle Zeitzone.

Die Funktion gmtime() wandelt die Calendar-Zeit timep in eine aufgeteilte Zeitangabe, ausgedrückt in Universalzeit (UTC).

Die Funktion localtime() wandelt die Calendar-Zeit timep in eine aufgeteilte Zeitangabe, ausgedrückt relativ zu der Benutzerspezifizierten Zeitzone. Die Funktion setzt auch die externe Variable tzname mit Informationen über die aktuelle Zeitzone, timezone mit der Differenz zwischen Universalzeit (UTC) und der lokalen Standardzeit in Sekunden, sowie daylight auf einen Nicht-Null-Wert wenn Standard-US-Sommerzeitregeln greifen.

Die Funktion asctime() wandelt die aufgeteilte Zeitangabe timeptr in einen String mit dem gleichen Format wie ctime(). Der Rückgabewert zeigt auf einen statisch belegten String welcher durch nachfolgende Aufrufe von Datums-/Uhrzeitfunktionen überschrieben werden darf.

Die Funktion mktime() wandelt die aufgeteilte Zeitangabe, ausgedrückt als lokale Zeit, in Calendar-Zeit. Die Funktion ignoriert die Inhalte der Strukturelemente tm_wday und tm_yday und berechnet sie neu aus den anderen Informationen der Struktur für die aufgeteilte Zeitangabe. Aufrufen von mktime() setzt auch die externe Variable tzname mit Informationen über die aktuelle Zeitzone. Wenn die angegebene aufgeteilte Zeitangabe nicht als Calendar-Zeit dargestellt werden kann gibt mktime() den Wert (time_t)(-1) zurück und verändert die Elemente tm_wday und tm_yday der aufgeteilten Zeitangabe nicht.

KONFORM ZU
SVID 3, POSIX, BSD 4.3, ISO 9899

SIEHE AUCH
date(1), gettimeofday(2), time(2), tzset(3), difftime(3), strftime(3), newctime(3).