.\" -*- coding: UTF-8 -*- .\" Copyright 2001 walter harms (walter.harms@informatik.uni-oldenburg.de) .\" and Copyright 2008, Linux Foundation, written by Michael Kerrisk .\" .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" Modified, 2001-12-26, aeb .\" 2008-09-07, mtk, Various rewrites; added an example program. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH GETDATE 3 "6. März 2019" "" Linux\-Programmierhandbuch .SH BEZEICHNUNG getdate \- zerlegt eine Datum\-plus\-Zeit\-Zeichenkette in ihre Bestandteile .SH ÜBERSICHT \fB#include \fP .PP \fBstruct tm *getdate(const char *\fP\fIstring\fP\fB);\fP .PP \fBextern int getdate_err;\fP .PP \fB#include \fP .PP \fBint getdate_r(const char *\fP\fIstring\fP\fB, struct tm *\fP\fIres\fP\fB);\fP .PP .in -4n Mit Glibc erforderliche Makros (siehe \fBfeature_test_macros\fP(7)): .in .PP \fBgetdate\fP(): .ad l .RS 4 .\" || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE\ >=\ 500 .RE .br \fBgetdate_r\fP(): .ad l .RS 4 _GNU_SOURCE .RE .ad .SH BESCHREIBUNG Die Funktion \fBgetdate\fP() zerlegt eine als Zeichenkette gegebene Darstellung von Datum und Uhrzeit in ihre Bestandteile. Die Zeichenkette befindet sich in dem Puffer, auf den \fIstring\fP weist. Die Bestandteile werden in einer \fItm\fP\-Struktur abgelegt. Als Funktionsergebnis wird ein Zeiger auf diese Struktur zurückgegeben. Diese \fItm\fP\-Struktur wird in statischem Speicher bereitgestellt und somit bei weiteren Aufrufen von \fBgetdate\fP() überschrieben. .PP Im Gegensatz zu \fBstrptime\fP(3), (die ein Argument \fIformat\fP hat), verwendet \fBgetdate\fP() die Formate, die sie in der Datei findet, deren vollständiger Pfadname in der Umgebungsvariablen \fBDATEMSK\fP angegeben ist. Die erste Zeile in dieser Datei, die zu der angegebenen Zeichenkette passt, wird für die Umwandlung verwendet. .PP Dabei wird nicht zwischen Groß\- und Kleinbuchstaben unterschieden. Überflüssiger Leerraum (Whitespace) wird ignoriert, sowohl im Muster als auch in der Zeichenkette, die zerlegt werden soll. .PP Die Umwandlungsspezifikationen, die in einem Muster enthalten sein dürfen, entsprechen den in \fBstrptime\fP(3) angegebenen. Eine weitere zulässige Spezifikation ist in POSIX.1\-2001 angegeben: .TP \fB%Z\fP .\" FIXME Is it (still) true that %Z is not supported in glibc? .\" Looking at the glibc 2.21 source code, where the implementation uses .\" strptime(), suggests that it might be supported. Name der Zeitzone; in Glibc nicht implementiert .PP Wenn \fB%Z\fP angegeben wird, wird die Struktur, welche die heruntergebrochene Zeit beherbergt, mit der aktuellen Zeit in der angegebenen Zeitzone initialisiert. Ansonsten wird sie mit der heruntergebrochenen Zeit der aktuellen lokalen Zeit initialisiert (durch einen Aufruf von \fBlocaltime\fP(3)). .PP Wenn nur ein Wochentag angegeben wurde, wird er als erster solcher Tag am oder nach dem heutigen Tag angesehen. .PP Wenn ausschließlich der Monat angegeben wird (und kein Jahr), wird der erste gleichnamige Monat genommen, der dem aktuellen oder einem nachfolgenden Monat entspricht. Wenn kein Tag angegeben wird, wird der erste Tag des Monats angenommen. .PP Wenn keine Stunde, Minute und Sekunde angegeben wird, werden die aktuelle Stunde, Minute und Sekunde verwendet. .PP Wenn kein Datum angegeben wird, jedoch die Stunde bekannt ist, dann wird die Stunde genommen, die der aktuellen oder einer späteren entspricht. .PP \fBgetdate_r\fP() ist eine GNU\-Erweiterung, die eine ablaufinvariante Version von \fBgetdate\fP() bereitstellt. Anstatt eine globale Variable für Fehlerberichte und einen statischen Puffer zur Rückgabe der heruntergebrochenen Zeit zu nutzen, gibt sie Fehler als Funktionsergebnis zurück und verwendet zur Ausgabe der heruntergebrochenen Zeit den vom Aufrufenden bereitgestellten Puffer, auf den \fIres\fP weist. .SH RÜCKGABEWERT Bei Erfolg gibt \fBgetdate\fP() einen Zeiger zu einer \fIstruct tm\fP zurück. Ansonsten wird NULL zurückgegeben und die globale Variable \fIgetdate_err\fP mit einer der im Folgenden angegebenen Fehlernummern gesetzt. Änderungen an \fIerrno\fP sind nicht spezifiziert. .PP Bei Erfolg gibt \fBgetdate_r\fP() 0 zurück; bei Fehlern ist der Rückgabewert eine der folgenden Fehlernummern. .SH FEHLER Die folgenden Fehler werden mittels \fIgetdate_err\fP (für \fBgetdate\fP()) oder als das Funktionsergebnis (für \fBgetdate_r\fP()) zurückgegeben: .TP 4n \fB1\fP Die Umgebungsvariable \fBDATEMSK\fP ist nicht definiert oder ihr Wert ist eine leere Zeichenkette. .TP \fB2\fP Die durch \fBDATEMSK\fP angegebene Vorlagendatei konnte nicht zum Lesen geöffnet werden. .TP \fB3\fP .\" stat() Der Dateistatus konnte nicht ermittelt werden. .TP \fB4\fP Die Vorlagendatei ist keine reguläre Datei. .TP \fB5\fP Während des Lesens der Vorlagendatei ist ein Fehler aufgetreten. .TP \fB6\fP .\" Error 6 doesn't seem to occur in glibc Speicherzuordnung fehlgeschlagen (nicht ausreichend Speicher verfügbar) .TP \fB7\fP Keine Zeile in der Datei passt zur Eingabe. .TP \fB8\fP ungültige Beschreibung in der Eingabe .SH UMGEBUNGSVARIABLEN .TP \fBDATEMSK\fP Datei, die Formatmuster enthält .TP \fBTZ\fP, \fBLC_TIME\fP Variablen, die von \fBstrptime\fP(3) verwendet werden .SH ATTRIBUTE Siehe \fBattributes\fP(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke. .TS allbox; lb lb lb l l l. Schnittstelle Attribut Wert T{ \fBgetdate\fP() T} Multithread\-Fähigkeit MT\-Unsafe race:getdate env locale T{ \fBgetdate_r\fP() T} Multithread\-Fähigkeit MT\-Safe env locale .TE .SH "KONFORM ZU" POSIX.1\-2001, POSIX.1\-2008. .SH ANMERKUNGEN Die Beschreibung in POSIX.1 für \fBstrptime\fP(3) enthält Beschreibungen für Umwandlungen, welche die Modifizierer \fB%E\fP und \fB%O\fP verwenden, während es solche Beschreibungen für \fBgetdate\fP() nicht gibt. Die Glibc implementiert \fBgetdate\fP() mittels \fBstrptime\fP(3), sodass beide die gleichen Umwandlungen unterstützen. .SH BEISPIEL Das folgende Programm ruft \fBgetdate\fP() für jedes seiner Befehlszeilen\-Argumente auf und gibt für jeden Aufruf die Werte der Felder in der zurückgegebenen \fItm\fP\-Struktur aus. Die folgende Shell\-Sitzung demonstriert die Nutzung des Programms: .PP .in +4n .EX $\fB TFILE=$PWD/tfile\fP $\fB echo \(aq%A\(aq > $TFILE \fP # vollständiger Name des Wochentags $\fB echo \(aq%T\(aq >> $TFILE\fP # ISO\-Datum (YYYY\-MM\-DD) $\fB echo \(aq%F\(aq >> $TFILE\fP # Zeit (HH:MM:SS) $\fB date\fP $\fB export DATEMSK=$TFILE\fP $\fB ./a.out Tuesday \(aq2009\-12\-28\(aq \(aq12:22:33\(aq\fP Sun Sep 7 06:03:36 CEST 2008 Aufruf 1 ("Tuesday") erfolgreich: tm_sec = 36 tm_min = 3 tm_hour = 6 tm_mday = 9 tm_mon = 8 tm_year = 108 tm_wday = 2 tm_yday = 252 tm_isdst = 1 Aufruf 2 ("2009\-12\-28") erfolgreich: tm_sec = 36 tm_min = 3 tm_hour = 6 tm_mday = 28 tm_mon = 11 tm_year = 109 tm_wday = 1 tm_yday = 361 tm_isdst = 0 Aufruf 3 ("12:22:33") erfolgreich: tm_sec = 33 tm_min = 22 tm_hour = 12 tm_mday = 7 tm_mon = 8 tm_year = 108 tm_wday = 0 tm_yday = 250 tm_isdst = 1 .EE .in .SS Programmquelltext \& .EX #define _GNU_SOURCE #include #include #include int main(int argc, char *argv[]) { struct tm *tmp; int j; for (j = 1; j < argc; j++) { tmp = getdate(argv[j]); if (tmp == NULL) { printf("Aufruf %d fehlgeschlagen; getdate_err = %d\en", j, getdate_err); continue; } printf("Aufruf %d (\e"%s\e") erfolgreich:\en", j, argv[j]); printf(" tm_sec = %d\en", tmp\->tm_sec); printf(" tm_min = %d\en", tmp\->tm_min); printf(" tm_hour = %d\en", tmp\->tm_hour); printf(" tm_mday = %d\en", tmp\->tm_mday); printf(" tm_mon = %d\en", tmp\->tm_mon); printf(" tm_year = %d\en", tmp\->tm_year); printf(" tm_wday = %d\en", tmp\->tm_wday); printf(" tm_yday = %d\en", tmp\->tm_yday); printf(" tm_isdst = %d\en", tmp\->tm_isdst); } exit(EXIT_SUCCESS); } .EE .SH "SIEHE AUCH" \fBtime\fP(2), \fBlocaltime\fP(3), \fBsetlocale\fP(3), \fBstrftime\fP(3), \fBstrptime\fP(3) .SH KOLOPHON Diese Seite ist Teil der Veröffentlichung 5.04 des Projekts Linux\-\fIman\-pages\fP. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter \%https://www.kernel.org/doc/man\-pages/. .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Schulze , Martin Eberhard Schauer und Mario Blättermann erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE 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 die .MT debian-l10n-german@\:lists.\:debian.\:org Mailingliste der Übersetzer .ME .