STRFTIM(3)

BEZEICHNUNG
strftime - formatiert Datum und Uhrzeit

ÜBERSICHT
#include <time.h>

size_t strftime(char *s, size_t max, const char *format,
				const struct tm *tm);

BESCHREIBUNG
Die Funktion strftime() formatiert die Zeit tm in das Format format und schreibt das Format in das Feld s der Große max.

Normale Zahlen im Format werden ohne Konvertierung in s kopiert. Konvertierungsanweisungen werden durch `%' charakterisiert und in s folgendermaßen geschrieben:

%a  Der abgekürzte Wochentag abhängig von der momentanen locale Umgebung.

%A  Der gesamte Wochentag abhängig von der momentanen locale Umgebung.

%b  Der abgekürzte Monatsname abhängig von der momentanen locale Umgebung.

%B  Der volle Monatsname abhängig von der momentanen locale Umgebung.

%c  Das bevorzugte Datum und die bevorzugte Uhrzeit laut Einstellungen der momentanen locale Umgebung.

%d  Der Tag im Monat als ganze Zahl (1 - 31).

%H  Die Stunde als ganze Zahl (00 - 23).

%I  Die Stunde als ganze Zahl (01 - 12).

%j  Der Tag im Jahr als ganze Zahl (001 - 366).

%m  Der Monat als ganze Zahl (01 - 12).

%M  Die Minute als ganze Zahl.

%p  Entweder `am' oder `pm' je nach der übergebenen Uhrzeit oder nach der zugehörigen Zeichenkette in der momentanen locale Umgebung.

%S  Die Sekunde als ganze Zahl.

%U  Die Wochennummer des aktuellen Jahres als ganze Zahl, beginnend mit dem ersten Sonntag als erster Tag der ersten Woche.

%W  Die Wochennummer des aktuellen Jahres als ganze Zahl, beginnend mit dem ersten Montag als erster Tag der ersten Woche.

%w  Der Wochentag als ganze Zahl, Sonntag beginnt mit 0.

%x  Das bevorzugte Datum ohne die Zeit in der momentanen locale Umgebung.

%X  Die bevorzugte Uhrzeit ohne das Datum in der momentanen locale Umgebung.

%y  Das Jahr als ganze Zahl ohne das Jahrhundert (00 - 99).

%Y  Das Jahr als ganze Zahl mit dem Jahrhundert.

%Z  Die Zeitzone oder der Name oder die Abkürzung.

%%  Der Buchstabe `%'

Die Struktur der Zeit tm ist in <time.h> folgendermaßen definiert.

    struct tm
    {
    	int	tm_sec;			/* Sekunden */
    	int	tm_min;			/* Minuten */
    	int	tm_hour;		/* Stunden */
    	int	tm_mday;		/* Tag im Monat */
    	int	tm_mon;			/* Monat */
    	int	tm_year;		/* Jahr */
    	int	tm_wday;		/* Tag in der Woche */
    	int	tm_yday;		/* Tag im Jahr */
    	int	tm_isdst;		/* Sommerzeit */
    };

Die Struktur tm besteht aus:

tm_sec
    Die Anzahl der Sekunden im Bereich von 0 bis 59, kann aber auch bis 61 gehn, um Sprungsekunden zuzulassen.

tm_min
    Die Anzahl der Minuten im Bereich von 0 bis 59.

tm_hour
    Die Anzahl der Stunden nach Mitternacht im Bereich von 0 bis 23.

tm_mday
    Der Tag im Monat im Bereich von 1 bis 31.

tm_mon
    Die Anzahl der Monat seit Januar im Bereich von 0 bis 11.

tm_year
    Die Anzahl der Jahre seit 1900.

tm_wday
    Die Anzahl der Tage seit Sonntag im Bereich von 0 bis 6.

tm_yday
    Die Anzahl der Tage seit dem 1.Januar im Bereich von 0 bis 365.

tm_isdst
    Dies zeigt an, ob Sommerzeit ist oder nicht. Der Wert ist positiv, wenn Sommerzeit ist, Null, wenn nicht und negativ, wenn keine Informationen darüber vorliegen.

RÜCKGABEWERT
Die Funktion strftime() liefert die Anzahl der Buchstaben zurück, die in das Feld s geschrieben wurden, allerdings ohne die NULL Zeichen am Ende. Wenn der Wert gleich max ist, bedeutet das, daß das Feld zu klein war.

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

ANMERKUNGEN
Die Funktion unterstützt nur die Umgebungen, die in locale(7) spezifiziert werden.

SIEHE AUCH
date(1), time(2), ctime(3), setlocale(3), sprintf(3).