Provided by: manpages-de-dev_1.4-1_all bug

BEZEICHNUNG

       getdate - zerlegt eine Datum-plus-Zeit-Zeichenkette in ihre Bestandteile

ÜBERSICHT

       #include <time.h>

       struct tm *getdate(const char *string);

       extern int getdate_err;

       #include <time.h>

       int getdate_r(const char *string, struct tm *res);

   Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

       getdate():
           _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
       getdate_r():
           _GNU_SOURCE

BESCHREIBUNG

       Die   Funktion   getdate()  zerlegt  eine  als  Zeichenkette  gegebene  Darstellung  eines
       Zeitpunktes (inklusive Datum) in ihre Bestandteile.  Die  Zeichenkette  befindet  sich  in
       einem  Puffer, auf den string weist. Die Bestandteile werden in einer tm-Struktur abgelegt
       und ein Zeiger auf diese Struktur als Funktionsergebnis zurückgegeben.  Diese  tm-Struktur
       wird  in  statischem  Speicher  bereitgestellt  und  wird  somit bei weiteren Aufrufen von
       getdate() überschrieben.

       Im Gegensatz zu strptime(3), (die  ein  Argument  format  hat),  verwendet  getdate()  die
       Formate,   die   sie   in   der   Datei   findet,  deren  vollständiger  Pfadname  in  der
       Umgebungsvariablen DATEMSK angegeben ist. Die erste Zeile in  dieser  Datei,  die  zu  der
       angegebenen Zeichenkette passt, wird für die Umwandlung verwendet.

       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.

       Die  Umwandlungsspezifikationen,  die  ein  Muster  enthalten  darf,  entsprechen  den bei
       strptime(3) angegebenen. Eine weitere Spezifikation, die akzeptiert wird, ist:

       %Z     Name der Zeitzone; in Glibc nicht implementiert

       Wenn %Z 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.

       Wenn nur ein Wochentag angegeben wurde, wird er als erster solcher Tag am  oder  nach  dem
       heutigen Tag angesehen.

       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.

       Wenn  keine  Stunde, Minute und Sekunde angegeben wird, werden die aktuelle Stunde, Minute
       und Sekunde verwendet.

       Wenn kein Datum angegeben wird, jedoch die  Stunde  bekannt  ist,  dann  wird  die  Stunde
       genommen, die der aktuellen oder einer späteren entspricht.

       getdate_r()  ist  eine  GNU-Erweiterung,  die  eine ablaufinvariante Version von getdate()
       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 res weist.

RÜCKGABEWERT

       Bei  Erfolg  gibt  getdate()  einen  Zeiger zu einer struct tm zurück. Ansonsten wird NULL
       zurückgegeben und die globale Variable getdate_err mit einer der im Folgenden  angegebenen
       Fehlernummern gesetzt. Änderungen an errno sind nicht spezifiziert.

       Bei  Erfolg gibt getdate_r() 0 zurück; bei Fehlern ist der Rückgabewert eine der folgenden
       Fehlernummern.

FEHLER

       Die  folgenden  Fehler  werden  mittels  getdate_err  (für   getdate())   oder   als   das
       Funktionsergebnis (für getdate_r()) zurückgegeben:

       1   Die  Umgebungsvariable  DATEMSK  ist  nicht  definiert  oder  ihr  Wert ist eine leere
           Zeichenkette.

       2   Die durch DATEMSK angegebene Vorlagendatei konnte nicht zum Lesen geöffnet werden.

       3   Der Dateistatus konnte nicht ermittelt werden.

       4   Die Vorlagendatei ist keine reguläre Datei.

       5   Während des Lesens der Vorlagendatei ist ein Fehler aufgetreten.

       6   Speicherzuordnung fehlgeschlagen (nicht ausreichend Speicher verfügbar)

       7   Keine Zeile in der Datei passt zur Eingabe.

       8   ungültige Beschreibung in der Eingabe

UMGEBUNGSVARIABLEN

       DATEMSK
              Datei, die Formatmuster enthält

       TZ, LC_TIME
              Variablen, die von strptime(3) verwendet werden

ATTRIBUTE

   Multithreading (see pthreads(7))
       The getdate()  function is not thread-safe.

       The getdate_r()  function is thread-safe.

KONFORM ZU

       POSIX.1-2001.

ANMERKUNGEN

       The POSIX.1-2001 specification for strptime(3)  contains conversion  specifications  using
       the  %E  or  %O modifier, while such specifications are not given for getdate(). In glibc,
       getdate()  is implemented using strptime(3), so that precisely the  same  conversions  are
       supported by both.

BEISPIEL

       The  program  below  calls getdate()  for each of its command-line arguments, and for each
       call displays the values in the fields of the returned tm structure. The  following  shell
       session demonstrates the operation of the program:

           $ TFILE=$PWD/tfile
           $ echo '%A' > $TFILE       # Full weekday name
           $ echo '%T' >> $TFILE      # ISO date (YYYY-MM-DD)
           $ echo '%F' >> $TFILE      # Time (HH:MM:SS)
           $ date
           $ export DATEMSK=$TFILE
           $ ./a.out Tuesday '2009-12-28' '12:22:33'
           Sun Sep  7 06:03:36 CEST 2008
           Call 1 ("Tuesday") succeeded:
               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
           Call 2 ("2009-12-28") succeeded:
               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
           Call 3 ("12:22:33") succeeded:
               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

   Programmquelltext

       #define _GNU_SOURCE 500
       #include <time.h>
       #include <stdio.h>
       #include <stdlib.h>

       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\n",
                          j, getdate_err);
                   continue;
               }

               printf("Call %d (\"%s\") succeeded:\n", j, argv[j]);
               printf("    tm_sec   = %d\n", tmp->tm_sec);
               printf("    tm_min   = %d\n", tmp->tm_min);
               printf("    tm_hour  = %d\n", tmp->tm_hour);
               printf("    tm_mday  = %d\n", tmp->tm_mday);
               printf("    tm_mon   = %d\n", tmp->tm_mon);
               printf("    tm_year  = %d\n", tmp->tm_year);
               printf("    tm_wday  = %d\n", tmp->tm_wday);
               printf("    tm_yday  = %d\n", tmp->tm_yday);
               printf("    tm_isdst = %d\n", tmp->tm_isdst);
           }

           exit(EXIT_SUCCESS);
       }

SIEHE AUCH

       time(2), localtime(3), setlocale(3), strftime(3), strptime(3)

KOLOPHON

       This  page  is  part  of release 3.54 of the Linux man-pages project. A description of the
       project,    and    information    about    reporting    bugs,    can    be    found     at
       http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Schulze <joey@infodrom.org>
       und Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> 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>.

                                          21. Juni 2013                                GETDATE(3)