strptime(3C) strptime(3C)
NAME
strptime - Datum und Zeit umwandeln
SYNTAX
#include <time.h>
char *strptime(const char *buf, const char *format, struct tm *tm);
BESCHREIBUNG
Die Funktion strptime() wandelt die Zeichenkette, auf die buf zeigt,
in Werte um, die in der durch den Zeiger tm angegebenen Struktur tm
abgelegt werden. Es wird das Format verwendet, das im Argument format
angegeben ist.
format besteht aus keinen oder mehreren Anweisungen. Jede Anweisung
besteht aus einem der folgenden Elemente: einem oder mehr Zwischen-
raumzeichen (wie in der Funktion isspace() angegeben), einem normalen
Zeichen (weder % noch ein Zwischenraumzeichen) oder einer Umwandlungs-
anweisung. Jede Umwandlungsanweisung besteht aus dem Zeichen %,
gefolgt von einem Umwandlungszeichen, das die gewünschte Umwandlung
angibt. Umwandlungsanweisungen müssen durch Zwischenraumzeichen oder
andere nicht-alphanumerische Zeichen getrennt sein. Es werden die fol-
genden Umwandlungsanweisungen unterstützt:
%a Wochentag; es werden die Namen der Locale für die Wochentage ver-
wendet. Es wird der abgekürzte oder der ausgeschriebene Name
angegeben.
%A Wie %a.
%b Monat; es werden die Namen der Locale für die Monate verwendet.
Es wird der abgekürzte oder der ausgeschriebene Name angegeben.
%B Wie %b.
%c Datum und Zeit; es wird das Format der Locale für Datum und Zeit
verwendet (zum Beispiel %x%X).
%C Jahrhundert [0,99]; führende Nullen sind erlaubt, aber nicht not-
wendig.
%d Monatstag [1,31]; führende Nullen sind erlaubt, aber nicht not-
wendig.
%D Datum im Format %m/%d/%y.
%e Wie %d.
%h Wie %b.
%H Stunde (als 24 Stunden) [0,23]; führende Nullen sind erlaubt,
aber nicht notwendig.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
strptime(3C) strptime(3C)
%I Stunde (als 12 Stunden) [1,12]; führende Nullen sind erlaubt,
aber nicht notwendig.
%j Tag des Jahres [1,366]; führende Nullen sind erlaubt, aber nicht
notwendig.
%m Nummer des Monats [1,12]; führende Nullen sind erlaubt, aber
nicht notwendig.
%M Minute [0,59]; führende Nullen sind erlaubt, aber nicht notwen-
dig.
%n Zwischenraumzeichen.
%p Entsprechung der Locale für a.m. oder p.m.
%r Zeit im Format %I:%M:%S:%p.
%R Zeit im Format %H:%M.
%S Sekunde [0,61]; führende Nullen sind erlaubt, aber nicht notwen-
dig.
%t Zwischenraumzeichen.
%T Zeit im Format %H:%M:%S.
%U Nummer der Woche (Sonntag ist der erste Tag der Woche) als dezi-
male Zahl [00,53]; führende Nullen sind erlaubt, aber nicht not-
wendig.
%w Wochentag als dezimale Zahl [0,6], dabei steht 0 für Sonntag;
führende Nullen sind erlaubt, aber nicht notwendig.
%W Nummer der Woche (Montag ist der erste Tag der Woche) als dezi-
male Zahl [00,53]; führende Nullen sind erlaubt, aber nicht not-
wendig.
%x Datum im Datumsformat der Locale.
%X Zeit im Zeitformat der Locale.
%y Jahr innerhalb des Jahrhunderts [0,99]; führende Nullen sind
erlaubt, aber nicht notwendig.
%Y Jahr mit Angabe des Jahrhunderts (zum Beispiel 1988).
%% Ist das Zeichen %.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
strptime(3C) strptime(3C)
Modifizierte Anweisungen
Einige Anweisungen können mit den E- und O-Zeichen modifiziert werden.
Dadurch wird angegeben, daß ein alternatives Format bzw. eine andere
Anweisung verwendet werden soll, als bei der unmodifizierten Anweisung
(siehe Handbuch "Leitfaden für Programmierer: Internationalisierung -
Lokalisierung"). Wenn dieses Format oder diese Anweisung nicht in der
aktuellen Locale vorliegt, ist das Verhalten wie bei der unmodifizier-
ten Anweisung.
%Ec Alternative Darstellung der Locale für Datum und Zeit.
%EC Name des Basisjahrs (Zeitraum) bei der alternativen Darstellung
der Locale.
%Ex Alternative Darstellung der Locale für das Datum.
%EX Alternative Darstellung der Locale für die Zeit.
%Ey Offset zu %EC (nur Jahr) in der alternativen Darstellung der
Locale.
%EY Alternative Darstellung für das Jahr.
%Od Monatstag; Verwendung der alternativen numerischen Symbole der
Locale; führende Nullen sind erlaubt, aber nicht notwendig.
%Oe Wie %Od.
%OH Stunde (als 24 Stunden); Verwendung der alternativen numerischen
Symbole der Locale
%OI Stunde (als 12 Stunden); Verwendung der alternativen numerischen
Symbole der Locale.
%Om Monat; Verwendung der alternativen numerischen Symbole der
Locale.
%OM Minuten; Verwendung der alternativen numerischen Symbole der
Locale.
%OS Sekunden; Verwendung der alternativen numerischen Symbole der
Locale.
%OU Nummer der Woche (Sonntag ist der erste Tag der Woche); Verwen-
dung der alternativen numerischen Symbole der Locale.
%Ow Nummer des Wochentags (Sonntag = 0); Verwendung der alternativen
numerischen Symbole der Locale.
%OW Nummer der Woche (Montag ist der erste Tag der Woche); Verwendung
der alternativen numerischen Symbole der Locale.
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
strptime(3C) strptime(3C)
%Oy Jahr (Offset zu %C) in der alternativen Darstellung der Locale
und mit den alternativen numerischen Symbolen der Locale.
Eine Anweisung aus Zwischenraumzeichen wird ausgeführt, indem die Ein-
gabe bis zum ersten Zeichen gelesen wird, das kein Zwischenraumzeichen
ist (= das nächste zu bearbeitende Zeichen). Alternativ wird die
Anweisung ausgeführt, bis keine weiteren Zeichen gelesen werden kön-
nen.
Eine aus einem normalen Zeichen bestehende Anweisung wird ausgeführt,
indem das nächste Zeichen im Puffer gelesen wird. Wenn sich das im
Puffer gelesene Zeichen von dem Zeichen unterscheidet, das die Anwei-
sung darstellt, so schlägt die Anweisung fehl. Das Zeichen, das nicht
der Anweisung entspricht, und die folgenden Zeichen bleiben unbearbei-
tet.
Mehrere Anweisungen, die aus den Angaben %n, %t, Zwischenraumzeichen
oder einer beliebigen Kombination bestehen, werden folgendermaßen aus-
geführt: es wird bis zum ersten Zeichen gelesen, das kein Zwischen-
raumzeichen ist (= das nächste zu bearbeitende Zeichen), oder bis
keine Zeichen mehr gelesen werden können.
Bei allen anderen Umwandlungsanweisungen werden solange Zeichen gele-
sen, bis ein der nächsten Anweisung entsprechendes Zeichen gefunden
wird oder keine Zeichen mehr gelesen werden können. Diese Zeichen
(außer dem Zeichen, das der nächsten Anweisung entspricht) werden dann
mit den der Umwandlungsanweisung zugeordneten Werten der Locale ver-
glichen. Wird eine Entsprechung gefunden, werden die Werte für die
entsprechenden Komponenten der Struktur tm auf Werte gesetzt, die den
Locale-Informationen entsprechen. Die Case-Anweisung wird beim Ver-
gleich von Elementen in buf (zum Beispiel Namen für Monate oder
Wochentage) ignoriert. Wird keine Entsprechung gefunden, schlägt
strptime() fehl. Es können keine weiteren Zeichen gelesen werden.
Zur einfacheren Verwendung von identischen format-Zeichenketten für
die Funktionen strftime() und strptime() werden mehrere alternative
Formate und die besondere Behandlung der Zwischenraumzeichen zur Ver-
fügung gestellt.
FEHLER
Die Funktion strptime() schlägt fehl, wenn:
ENOSYS Die Funktionalität wird in dieser Implementation nicht
unterstützt.
ERGEBNIS
Bei erfolgreicher Beendigung gibt strptime() einen Zeiger auf das Zei-
chen nach dem letzten analysierten Zeichen zurück. Andernfalls wird
ein Nullzeiger zurückgegeben.
SIEHE AUCH
time(2), strftime(3C), scanf(3S), LCTIME(4), time(5).
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98