time_get-Klasse

Die Klassenvorlage beschreibt ein Objekt, das als Gebietsschema-Facet dienen kann, um Konvertierungen von Sequenzen vom Typ CharType in Zeitwerte zu steuern.

Syntax

template <class CharType,
    class InputIterator = istreambuf_iterator<CharType>>
class time_get : public time_base;

Parameter

CharType
Der Typ, der innerhalb eines Programms verwendet wird, um Zeichen zu codieren.

InputIterator
Der Iterator, von dem die Zeitwerte gelesen werden.

Hinweise

Wie bei jedem Gebietsschemafacet hat die statische Objekt-ID einen anfänglichen gespeicherten Wert von NULL. Beim ersten Versuch, auf den gespeicherten Wert zuzugreifen, wird in id ein eindeutiger positiver Wert gespeichert.

Konstruktoren

Konstruktor Beschreibung
time_get Der Konstruktor für Objekte des Typs time_get.

TypeDefs

Typname Beschreibung
char_type Ein Typ, mit dem ein Zeichen beschrieben wird, das von einem Gebietsschema verwendet wird.
iter_type Ein Typ, der einen Eingabeiterator beschreibt.

Memberfunktionen

Memberfunktion Beschreibung
date_order Gibt die Datumsreihenfolge zurück, die von einem Facet verwendet wird.
do_date_order Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um die von einem Facet verwendete Datumsreihenfolge zurückzugeben.
do_get Liest und konvertiert Zeichendaten in einen Zeitwert.
do_get_date Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als das Datum zu analysieren, das vom x-Bezeichner für strftime erstellt wurde.
do_get_monthname Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als Name des Monats zu analysieren.
do_get_time Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als das Datum zu analysieren, das vom X-Bezeichner für strftime erstellt wurde.
do_get_weekday Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als Name des Wochentags zu analysieren.
do_get_year Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als Name des Jahres zu analysieren.
get Liest aus einer Zeichendatenquelle und konvertiert die Daten in eine Zeit, die in einer Zeitstruktur gespeichert wird.
get_date Analysiert eine Zeichenfolge als das Datum, das vom x-Bezeichner für strftime erzeugt wird.
get_monthname Analysiert eine Zeichenfolge als Name des Monats.
get_time Analysiert eine Zeichenfolge als das Datum, das vom X-Bezeichner für strftime erzeugt wird.
get_weekday Analysiert eine Zeichenfolge als Name des Wochentags.
get_year Analysiert eine Zeichenfolge als Name des Jahres.

Anforderungen

Header:<locale>

Namespace: std

time_get::char_type

Ein Typ, mit dem ein Zeichen beschrieben wird, das von einem Gebietsschema verwendet wird.

typedef CharType char_type;

Hinweise

Der Typ stellt ein Synonym für den Vorlagenparameter CharType dar.

time_get::d ate_order

Gibt die Datumsreihenfolge zurück, die von einem Facet verwendet wird.

dateorder date_order() const;

Rückgabewert

Datumsreihenfolge, die von einem Facet verwendet wird.

Hinweise

Die Memberfunktion gibt do_date_order zurück.

Beispiel

// time_get_date_order.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
void po( char *p )
{
   locale loc( p );

   time_get <char>::dateorder order = use_facet <time_get <char> >( loc ).date_order ( );
   cout << loc.name( );
   switch (order){
      case time_base::dmy: cout << "(day, month, year)" << endl;
      break;
      case time_base::mdy: cout << "(month, day, year)" << endl;
      break;
      case time_base::ydm: cout << "(year, day, month)" << endl;
      break;
      case time_base::ymd: cout << "(year, month, day)"<< endl;
      break;
      case time_base::no_order: cout << "(no_order)"<< endl;
      break;
   }
}

int main( )
{
   po( "C" );
   po( "german" );
   po( "English_Britain" );
}
C(month, day, year)
German_Germany.1252(day, month, year)
English_United Kingdom.1252(day, month, year)

time_get::d o_date_order

Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um die von einem Facet verwendete Datumsreihenfolge zurückzugeben.

virtual dateorder do_date_order() const;

Rückgabewert

Datumsreihenfolge, die von einem Facet verwendet wird.

Hinweise

Die virtuelle geschützte Memberfunktion gibt einen Wert vom Typ time_base::dateorder zurück, der die Reihenfolge beschreibt, in der Datumskomponenten von do_get_date zugeordnet werden. In dieser Implementierung ist der Wert time_base::mdy und entspricht Datumsangaben der Form Dezember 2, 1979.

Beispiel

Siehe das Beispiel für date_order, mit dem do_date_order aufgerufen wird.

time_get::d o_get

Liest und konvertiert Zeichendaten in einen Zeitwert. Verwendet einen Konvertierungsspezifizierer und -modifizierer.

virtual iter_type
    do_get(
iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm,
    char fmt,
    char mod) const;

Parameter

first
Ein Eingabeiterator, der den Anfang der zu konvertierenden Sequenz angibt.

last
Ein Eingabeiterator, der das Ende der Sequenz angibt.

iosbase
Ein Streamobjekt.

state
Ein Feld in iosbase, bei dem geeignete Bitmaskenelemente auf Fehler festgelegt sind.

ptm
Ein Zeiger auf die Zeitstruktur, in der die Zeit gespeichert werden soll.

Fmt
Eine Konvertierungsspezifiziererzeichen.

mod
Ein optionales Modifiziererzeichen.

Rückgabewert

Gibt einen Iterator zurück, der das erste nicht konvertierte Element kennzeichnet. Ein Konvertierungsfehler wird festgelegt ios_base::failbit state und zuerst zurückgegeben.

Hinweise

Die virtuelle Memberfunktion konvertiert und überspringt ein oder mehrere Eingabeelemente im Bereich [first, last), um die in einem oder mehreren Membern *ptgespeicherten Werte zu bestimmen. Ein Konvertierungsfehler wird festgelegt ios_base::failbit state und zuerst zurückgegeben. Andernfalls gibt die Funktion einen Iterator zurück, der das erste nicht konvertierte Element festlegt.

Es gibt die folgenden Konvertierungsspezifizierer:

'a' oder 'A' – bewirkt dasselbe Verhalten wie time_get::get_weekday.

'b', 'B' oder 'h' – bewirkt dasselbe Verhalten wie time_get::get_monthname.

'c' – bewirkt dasselbe Verhalten wie "%b %d %H : %M : %S %Y".

'C' – konvertiert ein dezimales Eingabefeld im Bereich [0, 99] in den Wert val und speichert val * 100 - 1900 in pt-&tm_year.

'd' oder 'e' – konvertiert ein dezimales Eingabefeld im Bereich [1, 31] und speichert den Wert in pt-&tm_mday.

'D' – bewirkt dasselbe Verhalten wie "%m / %d / %y".

'H' – konvertiert ein dezimales Eingabefeld im Bereich [0, 23] und speichert dessen Wert in pt-&tm_hour.

'I' – konvertiert ein dezimales Eingabefeld im Bereich [0, 11] und speichert dessen Wert in pt-&tm_hour.

'j' – konvertiert ein dezimales Eingabefeld im Bereich [1, 366] und speichert dessen Wert in pt-&tm_yday.

'm' – konvertiert ein dezimales Eingabefeld im Bereich [1, 12] in den Wert val und speichert val - 1 in pt-&tm_mon.

'M' – konvertiert ein dezimales Eingabefeld im Bereich [0, 59] und speichert dessen Wert in pt-&tm_min.

'n' oder 't' – bewirkt dasselbe Verhalten wie " ".

'p' – konvertiert „AM“ oder „am“ in 0 und „PM“ oder „PM“ in 12 und addiert diesen Wert zu pt-&tm_hour hinzu.

'r' – bewirkt dasselbe Verhalten wie "%I : %M : %S %p".

'R' – bewirkt dasselbe Verhalten wie "%H %M".

'S' – konvertiert ein dezimales Eingabefeld im Bereich [0, 59] und speichert dessen Wert in pt-&tm_sec.

'T' oder 'X' – bewirkt dasselbe Verhalten wie "%H : %M : S".

'U' – konvertiert ein dezimales Eingabefeld im Bereich [0, 53] und speichert dessen Wert in pt-&tm_yday.

'w' – konvertiert ein dezimales Eingabefeld im Bereich [0, 6] und speichert dessen Wert in pt-&tm_wday.

'W' – konvertiert ein dezimales Eingabefeld im Bereich [0, 53] und speichert dessen Wert in pt-&tm_yday.

'x' – bewirkt dasselbe Verhalten wie "%d / %m / %y".

'y' – konvertiert ein dezimales Eingabefeld im Bereich [0, 99] in den Wert val und speichert val < 69 val + 100 : val in pt-&tm_year.

'Y' – bewirkt dasselbe Verhalten wie time_get::get_year.

Jeder andere Konvertierungsspezifizierer bewirkt, dass ios_base::failbit in state festgelegt wird und ein Rücksprung erfolgt. In dieser Implementierung wirkt sich keiner der Modifizierer aus.

time_get::d o_get_date

Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als das Datum zu analysieren, das vom x-Bezeichner für strftime erstellt wurde.

virtual iter_type do_get_date(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parameter

first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.

last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.

iosbase
Ein Formatkennzeichen, das bei Verwendung angibt, dass das Währungssymbol optional ist. Ansonsten ist das Währungssymbol erforderlich.

state
Legt die entsprechenden Bitmaskenelemente für den Streamstatus fest, je nachdem, ob die Vorgänge erfolgreich waren.

ptm
Ein Zeiger auf den Ort, an dem die Datumsinformation gespeichert werden soll.

Rückgabewert

Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.

Hinweise

Die virtuelle geschützte Memberfunktion versucht, sequenzielle Elemente zuzuordnen, und beginnt zuerst in der Sequenz [ first, last), bis sie ein vollständiges, nicht leeres Datumseingabefeld erkannt hat. Bei erfolgreicher Ausführung konvertiert es dieses Feld in den entsprechenden Wert wie die Komponenten tm::tm_mon, tm::tm_day und tm::tm_year und speichert die Ergebnisse in ptm->tm_mon, ptm->tm_daybzw ptm->tm_year. in . Sie gibt einen Iterator zurück, der das erste Element nach dem Datumseingabefeld festlegt. Andernfalls legt die Funktion den Zustand fest.iosbase::failbit Sie gibt einen Iterator zurück, der das erste Element nach jedem Präfix eines gültigen Datumseingabefelds festlegt. In beiden Fällen, wenn der Rückgabewert der letzten entspricht, legt die Funktion den Zustand festios_base::eofbit.

Das Format für das Datumseingabefeld ist vom Gebietsschema abhängig. Für das Standardgebietsschema hat das Datumseingabefeld die Form MMM DD, YYYY:

  • MMM wird durch Aufrufen von get_monthname abgeglichen, das den Monat angibt.

  • DD ist eine Folge von Dezimalziffern, deren entsprechender numerischer Wert im Bereich [1, 31] liegen muss und den Tag des Monats angibt.

  • YYYY wird durch Aufrufen von get_year abgeglichen, das das Jahr angibt.

Die literalen Leerzeichen und Kommas müssen mit den entsprechenden Elementen in der Eingabesequenz übereinstimmen.

Beispiel

Siehe das Beispiel für get_date, mit dem do_get_date aufgerufen wird.

time_get::d o_get_monthname

Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als Name des Monats zu analysieren.

virtual iter_type do_get_monthname(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parameter

first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.

last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.

iosbase
Nicht verwendet.

state
Ein Ausgabeparameter, der die entsprechenden Bitmaskenelemente für den Streamstatus festlegt, je nachdem, ob die Vorgänge erfolgreich waren.

ptm
Ein Zeiger auf den Ort, an dem die Monatsinformation gespeichert werden soll.

Rückgabewert

Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.

Hinweise

Die virtuelle geschützte Memberfunktion versucht, sequenzielle Elemente zuzuordnen, und beginnt zuerst in der Sequenz [ first, last), bis sie ein vollständiges, nicht leeres Monatseingabefeld erkannt hat. Bei erfolgreicher Ausführung konvertiert es dieses Feld in den entsprechenden Wert als Komponente tm::tm_mon und speichert das Ergebnis in ptm->tm_mon. Sie gibt einen Iterator zurück, der das erste Element nach dem Monatseingabefeld festlegt. Andernfalls legt die Funktion den Zustand fest.ios_base::failbit Sie gibt einen Iterator zurück, der das erste Element nach jedem Präfix eines gültigen Monatseingabefelds festlegt. In beiden Fällen, wenn der Rückgabewert der letzten entspricht, legt die Funktion den Zustand festios_base::eofbit.

Das Monatseingabefeld ist eine Sequenz, die die längste aus einer Reihe von gebietsschemaspezifischen Zeichenfolgen wie Jan, Januar, Feb, Februar usw. zuordnet. Der konvertierte Wert ist die Anzahl von Monaten seit Januar.

Beispiel

Siehe das Beispiel für get_monthname, mit dem do_get_monthname aufgerufen wird.

time_get::d o_get_time

Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als das Datum zu analysieren, das vom X-Bezeichner für strftime erstellt wurde.

virtual iter_type do_get_time(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parameter

first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.

last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.

iosbase
Nicht verwendet.

state
Legt die entsprechenden Bitmaskenelemente für den Streamstatus fest, je nachdem, ob die Vorgänge erfolgreich waren.

ptm
Ein Zeiger auf den Ort, an dem die Datumsinformation gespeichert werden soll.

Rückgabewert

Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.

Hinweise

Die virtuelle geschützte Memberfunktion versucht, sequenzielle Elemente zuzuordnen, und beginnt zuerst in der Sequenz [ first, last), bis sie ein vollständiges, nicht leeres Zeiteingabefeld erkannt hat. Bei erfolgreicher Ausführung konvertiert es dieses Feld in den entsprechenden Wert wie die Komponenten tm::tm_hour, tm::tm_minund , und tm::tm_secspeichert die Ergebnisse in ptm->tm_hour, ptm->tm_minbzw ptm->tm_sec. in. Sie gibt einen Iterator zurück, der das erste Element nach dem Zeiteingabefeld festlegt. Andernfalls legt die Funktion den Zustand fest.ios_base::failbit Sie gibt einen Iterator zurück, der das erste Element nach jedem Präfix eines gültigen Zeiteingabefelds festlegt. In beiden Fällen, wenn der Rückgabewert der letzten entspricht, legt die Funktion den Zustand festios_base::eofbit.

In dieser Implementierung hat das Zeiteingabefeld die Form HH:MM:SS:

  • HH ist eine Folge von Dezimalziffern, deren entsprechender numerischer Wert im Bereich [0, 24) liegen muss und die Stunde des Tages angibt.

  • MM ist eine Folge von Dezimalziffern, deren entsprechender numerischer Wert im Bereich [0, 60) liegen muss und die Minuten nach der Stunde angibt.

  • SS ist eine Folge von Dezimalziffern, deren entsprechender numerischer Wert im Bereich [0, 60) liegen muss und die Sekunden nach der Minute angibt.

Die literalen Doppelpunkte müssen mit den entsprechenden Elementen in der Eingabesequenz übereinstimmen.

Beispiel

Siehe das Beispiel für get_time, mit dem do_get_time aufgerufen wird.

time_get::d o_get_weekday

Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als Name des Wochentags zu analysieren.

virtual iter_type do_get_weekday(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parameter

first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.

last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.

iosbase
Ein Formatkennzeichen, das bei Verwendung angibt, dass das Währungssymbol optional ist. Ansonsten ist das Währungssymbol erforderlich.

state
Legt die entsprechenden Bitmaskenelemente für den Streamstatus fest, je nachdem, ob die Vorgänge erfolgreich waren.

ptm
Ein Zeiger auf den Ort, an dem die Wochentagsinformation gespeichert werden soll.

Rückgabewert

Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.

Hinweise

Die virtuelle geschützte Memberfunktion versucht, sequenzielle Elemente abzugleichen, die zuerst in der Sequenz [ first, ) lastbeginnen, bis es ein vollständiges, nicht entsempmendes Wochentag-Eingabefeld erkannt hat. Bei erfolgreicher Ausführung konvertiert es dieses Feld in den entsprechenden Wert wie die Komponente tm::tm_wday und speichert das Ergebnis in ptm->tm_wday. Sie gibt einen Iterator zurück, der das erste Element nach dem Wochentagseingabefeld festlegt. Andernfalls legt die Funktion den Zustand fest.ios_base::failbit Sie gibt einen Iterator zurück, der das erste Element nach jedem Präfix eines gültigen Wochentagseingabefelds festlegt. In beiden Fällen, wenn der Rückgabewert der letzten entspricht, legt die Funktion den Zustand festios_base::eofbit.

Das Wochentagseingabefeld ist eine Sequenz, die die längste aus einer Reihe von gebietsschemaspezifischen Zeichenfolgen wie So, Sonntag, Mo, Montag usw. zuordnet. Der konvertierte Wert ist die Anzahl von Tagen seit Sonntag.

Beispiel

Siehe das Beispiel für get_weekday, mit dem do_get_weekday aufgerufen wird.

time_get::d o_get_year

Eine geschützte virtuelle Memberfunktion, die aufgerufen wird, um eine Zeichenfolge als Name des Jahres zu analysieren.

virtual iter_type do_get_year(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parameter

first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.

last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.

iosbase
Ein Formatkennzeichen, das bei Verwendung angibt, dass das Währungssymbol optional ist. Ansonsten ist das Währungssymbol erforderlich.

state
Legt die entsprechenden Bitmaskenelemente für den Streamstatus fest, je nachdem, ob die Vorgänge erfolgreich waren.

ptm
Ein Zeiger auf den Ort, an dem die Jahresinformation gespeichert werden soll.

Rückgabewert

Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.

Hinweise

Die virtuelle geschützte Memberfunktion versucht, sequenzielle Elemente abzugleichen, die zuerst in der Sequenz [ first, last) beginnen, bis sie ein vollständiges, nicht entsempziges Jahr-Eingabefeld erkannt hat. Bei erfolgreicher Ausführung konvertiert es dieses Feld in den entsprechenden Wert wie die Komponente tm::tm_year und speichert das Ergebnis in ptm->tm_year. Sie gibt einen Iterator zurück, der das erste Element nach dem Jahreseingabefeld festlegt. Andernfalls legt die Funktion den Zustand fest.ios_base::failbit Sie gibt einen Iterator zurück, der das erste Element nach jedem Präfix eines gültigen Jahreseingabefelds festlegt. In beiden Fällen, wenn der Rückgabewert der letzten entspricht, legt die Funktion den Zustand festios_base::eofbit.

Das Jahreseingabefeld ist eine Folge von Dezimalziffern, deren entsprechender numerischer Wert im Bereich [1900, 2036) liegen muss. Der gespeicherte Wert ist dieser Wert minus 1900. In dieser Implementierung repräsentieren Werte im Bereich [69, 136) den Bereich von Jahren [1969, 2036). Werte im Bereich [0, 69) sind ebenfalls zulässig, können jedoch abhängig von der jeweiligen Übersetzungsumgebung entweder den Bereich von Jahren [1900, 1969) oder [2000, 2069) darstellen.

Beispiel

Siehe das Beispiel für get_year, mit dem do_get_year aufgerufen wird.

time_get::get

Liest aus einer Zeichendatenquelle und konvertiert die Daten in eine Zeit, die in einer Zeitstruktur gespeichert wird. Die erste Funktion akzeptiert einen Konvertierungsspezifizierer und -modifizierer, die zweite akzeptiert mehrere.

iter_type get(
    iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm,
    char fmt,
    char mod) const;

iter_type get(
    iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm,
    char_type* fmt_first,
    char_type* fmt_last) const;

Parameter

first
Eingabeiterator, der angibt, wo die zu konvertierende Sequenz beginnt.

last
Eingabeiterator, der das Ende der zu konvertierenden Sequenz angibt.

iosbase
Der Datenstrom.

state
Die entsprechenden Bitmaskenelemente werden für den Streamzustand festgelegt, um Fehler zu kennzeichnen.

ptm
Zeiger auf die Zeitstruktur, in der die Zeit gespeichert werden soll.

Fmt
Eine Konvertierungsspezifiziererzeichen.

mod
Ein optionales Modifiziererzeichen.

fmt_first
Zeigt auf die Stelle, an der die Formatanweisungen beginnen.

fmt_last
Zeigt auf das Ende der Formatanweisungen.

Rückgabewert

Gibt einen Iterator an das erste Zeichen nach den Daten zurück, die zum Zuweisen der Zeitstruktur *ptmverwendet wurden.

Hinweise

Die erste Memberfunktion gibt do_get(first, last, iosbase, state, ptm, fmt, mod) zurück.

Die zweite Memberfunktion ruft do_get unter der Kontrolle des Formats auf, das durch [fmt_first, fmt_last) begrenzt ist. Die Funktion behandelt das Format als Sequenz von Feldern, von denen jedes die Konvertierung von null oder mehr Eingabeelementen bestimmt, die durch [first, last) begrenzt sind. Sie gibt einen Iterator zurück, der das erste nicht konvertierte Element festlegt. Es gibt drei Arten von Feldern:

Ein Prozent (%) im Format, gefolgt von einem optionalen Modifizierer mod in der Gruppe [EOQ#], gefolgt von einem Konvertierungsbezeichner fmt, ersetzt zuerst durch den von do_get(first, last, iosbase, state, ptm, fmt, mod). Ein Konvertierungsfehler wird im Zustand festgelegt ios_base::failbit und zurückgegeben.

Ein Leerzeichenelement im Format bewirkt ein Überspringen von eingegebenen Leerzeichenelementen.

Jedes weitere Element im Format muss mit dem nächsten Eingabeelement übereinstimmen, das übersprungen wird. Ein Übereinstimmungsfehler wird im Zustand festgelegt ios_base::failbit und zurückgegeben.

time_get::get_date

Analysiert eine Zeichenfolge als das Datum, das vom x-Bezeichner für strftime erzeugt wird.

iter_type get_date(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parameter

first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.

last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.

iosbase
Ein Formatkennzeichen, das bei Verwendung angibt, dass das Währungssymbol optional ist. Ansonsten ist das Währungssymbol erforderlich.

state
Legt die entsprechenden Bitmaskenelemente für den Streamstatus fest, je nachdem, ob die Vorgänge erfolgreich waren.

ptm
Ein Zeiger auf den Ort, an dem die Datumsinformation gespeichert werden soll.

Rückgabewert

Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.

Hinweise

Die Memberfunktion gibt do_get_date(first, , last, iosbase, state) ptmzurück.

Beachten Sie, dass Monate von 0 bis 11 gezählt werden.

Beispiel

// time_get_get_date.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main( )
{
   locale loc;
   basic_stringstream< char > pszGetF, pszPutF, pszGetI, pszPutI;
   ios_base::iostate st = 0;
   struct tm t;
   memset(&t, 0, sizeof(struct tm));

   pszGetF << "July 4, 2000";
   pszGetF.imbue( loc );
   basic_istream<char>::_Iter i = use_facet <time_get<char> >
   (loc).get_date(basic_istream<char>::_Iter(pszGetF.rdbuf( ) ),
            basic_istream<char>::_Iter(0), pszGetF, st, &t);

   if ( st & ios_base::failbit )
      cout << "time_get("<< pszGetF.rdbuf( )->str( )<< ") FAILED on char: " << *i << endl;
   else

      cout << "time_get("<< pszGetF.rdbuf( )->str( )<< ") ="
      << "\ntm_sec: " << t.tm_sec
      << "\ntm_min: " << t.tm_min
      << "\ntm_hour: " << t.tm_hour
      << "\ntm_mday: " << t.tm_mday
      << "\ntm_mon: " << t.tm_mon
      << "\ntm_year: " << t.tm_year
      << "\ntm_wday: " << t.tm_wday
      << "\ntm_yday: " << t.tm_yday
      << "\ntm_isdst: " << t.tm_isdst
      << endl;
}
time_get(July 4, 2000) =
tm_sec: 0
tm_min: 0
tm_hour: 0
tm_mday: 4
tm_mon: 6
tm_year: 100
tm_wday: 0
tm_yday: 0
tm_isdst: 0

time_get::get_monthname

Analysiert eine Zeichenfolge als Name des Monats.

iter_type get_monthname(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parameter

first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.

last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.

iosbase
Nicht verwendet.

state
Ein Ausgabeparameter, der die entsprechenden Bitmaskenelemente für den Streamstatus festlegt, je nachdem, ob die Vorgänge erfolgreich waren.

ptm
Ein Zeiger auf den Ort, an dem die Monatsinformation gespeichert werden soll.

Rückgabewert

Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.

Hinweise

Die Memberfunktion gibt do_get_monthname(first, , last, iosbase, state) ptmzurück.

Beispiel

// time_get_get_monthname.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main( )
{
   locale loc ( "French" );
   basic_stringstream<char> pszGetF, pszPutF, pszGetI, pszPutI;
   ios_base::iostate st = 0;
   struct tm t;
   memset( &t, 0, sizeof( struct tm ) );

   pszGetF << "juillet";
   pszGetF.imbue( loc );
   basic_istream<char>::_Iter i = use_facet <time_get <char> >
   (loc).get_monthname(basic_istream<char>::_Iter(pszGetF.rdbuf( )),
              basic_istream<char>::_Iter(0), pszGetF, st, &t);

   if (st & ios_base::failbit)
      cout << "time_get("<< pszGetF.rdbuf( )->str( )<< ") FAILED on char: " << *i << endl;
   else

      cout << "time_get("<< pszGetF.rdbuf( )->str( )<< ") ="
      << "\ntm_sec: " << t.tm_sec
      << "\ntm_min: " << t.tm_min
      << "\ntm_hour: " << t.tm_hour
      << "\ntm_mday: " << t.tm_mday
      << "\ntm_mon: " << t.tm_mon
      << "\ntm_year: " << t.tm_year
      << "\ntm_wday: " << t.tm_wday
      << "\ntm_yday: " << t.tm_yday
      << "\ntm_isdst: " << t.tm_isdst
      << endl;
}
time_get(juillet) =
tm_sec: 0
tm_min: 0
tm_hour: 0
tm_mday: 0
tm_mon: 6
tm_year: 0
tm_wday: 0
tm_yday: 0
tm_isdst: 0

time_get::get_time

Analysiert eine Zeichenfolge als das Datum, das vom X-Bezeichner für strftime erzeugt wird.

iter_type get_time(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parameter

first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.

last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.

iosbase
Nicht verwendet.

state
Legt die entsprechenden Bitmaskenelemente für den Streamstatus fest, je nachdem, ob die Vorgänge erfolgreich waren.

ptm
Ein Zeiger auf den Ort, an dem die Datumsinformation gespeichert werden soll.

Rückgabewert

Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.

Hinweise

Die Memberfunktion gibt do_get_time(first, last, , iosbase, state) ptmzurück.

Beispiel

// time_get_get_time.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main( )
{
   locale loc;
   basic_stringstream<char> pszGetF, pszPutF, pszGetI, pszPutI;
   ios_base::iostate st = 0;
   struct tm t;
   memset( &t, 0, sizeof( struct tm ) );

   pszGetF << "11:13:20";
   pszGetF.imbue( loc );
   basic_istream<char>::_Iter i = use_facet
      <time_get <char> >
      (loc).get_time(basic_istream<char>::_Iter(pszGetF.rdbuf( )),
               basic_istream<char>::_Iter(0), pszGetF, st, &t);

   if (st & ios_base::failbit)
      cout << "time_get::get_time("<< pszGetF.rdbuf( )->str( )<< ") FAILED on char: " << *i << endl;
   else

      cout << "time_get::get_time("<< pszGetF.rdbuf( )->str( )<< ") ="
      << "\ntm_sec: " << t.tm_sec
      << "\ntm_min: " << t.tm_min
      << "\ntm_hour: " << t.tm_hour
      << endl;
}
time_get::get_time(11:13:20) =
tm_sec: 20
tm_min: 13
tm_hour: 11

time_get::get_weekday

Analysiert eine Zeichenfolge als Name des Wochentags.

iter_type get_weekday(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parameter

first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.

last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.

iosbase
Ein Formatkennzeichen, das bei Verwendung angibt, dass das Währungssymbol optional ist. Ansonsten ist das Währungssymbol erforderlich.

state
Legt die entsprechenden Bitmaskenelemente für den Streamstatus fest, je nachdem, ob die Vorgänge erfolgreich waren.

ptm
Ein Zeiger auf den Ort, an dem die Wochentagsinformation gespeichert werden soll.

Rückgabewert

Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.

Hinweise

Die Memberfunktion gibt do_get_weekday(first, last, , iosbase, state) ptmzurück.

Beispiel

// time_get_get_weekday.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main( )
{
   locale loc ( "French" );
   basic_stringstream< char > pszGetF, pszPutF, pszGetI, pszPutI;
   ios_base::iostate st = 0;
   struct tm t;
   memset( &t, 0, sizeof( struct tm ) );

   pszGetF << "mercredi";
   pszGetF.imbue(loc);
   basic_istream<char>::_Iter i = use_facet
      <time_get<char> >
      (loc).get_weekday(basic_istream<char>::_Iter(pszGetF.rdbuf( )),
               basic_istream<char>::_Iter(0), pszGetF, st, &t);

   if (st & ios_base::failbit)
      cout << "time_get::get_time("<< pszGetF.rdbuf( )->str( )<< ") FAILED on char: " << *i << endl;
   else

      cout << "time_get::get_time("<< pszGetF.rdbuf( )->str( )<< ") ="
      << "\ntm_wday: " << t.tm_wday
      << endl;
}
time_get::get_time(mercredi) =
tm_wday: 3

time_get::get_year

Analysiert eine Zeichenfolge als Name des Jahres.

iter_type get_year(iter_type first,
    iter_type last,
    ios_base& iosbase,
    ios_base::iostate& state,
    tm* ptm) const;

Parameter

first
Der Eingabeiterator, der den Anfang der zu konvertierenden Sequenz adressiert.

last
Der Eingabeiterator, der das Ende der zu konvertierenden Sequenz adressiert.

iosbase
Ein Formatkennzeichen, das bei Verwendung angibt, dass das Währungssymbol optional ist. Ansonsten ist das Währungssymbol erforderlich.

state
Legt die entsprechenden Bitmaskenelemente für den Streamstatus fest, je nachdem, ob die Vorgänge erfolgreich waren.

ptm
Ein Zeiger auf den Ort, an dem die Jahresinformation gespeichert werden soll.

Rückgabewert

Ein Eingabeiterator,der das erste Element nach dem Eingabefeld adressiert.

Hinweise

Die Memberfunktion gibt do_get_year(first, last, , iosbase, state) ptmzurück.

Beispiel

// time_get_get_year.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main( )
{
   locale loc;
   basic_stringstream<char> pszGetF, pszPutF, pszGetI, pszPutI;
   ios_base::iostate st = 0;
   struct tm t;
   memset( &t, 0, sizeof( struct tm ) );

   pszGetF << "1928";

   pszGetF.imbue( loc );
   basic_istream<char>::_Iter i = use_facet
      <time_get<char> >
      (loc).get_year(basic_istream<char>::_Iter(pszGetF.rdbuf( )),
               basic_istream<char>::_Iter(0), pszGetF, st, &t);

   if (st & ios_base::failbit)
      cout << "time_get::get_year("<< pszGetF.rdbuf( )->str( )<< ") FAILED on char: " << *i << endl;
   else

      cout << "time_get::get_year("<< pszGetF.rdbuf( )->str( )<< ") ="
      << "\ntm_year: " << t.tm_year
      << endl;
}
time_get::get_year(1928) =
tm_year: 28

time_get::iter_type

Ein Typ, der einen Eingabeiterator beschreibt.

typedef InputIterator iter_type;

Hinweise

Der Type ist ein Synonym für den Vorlagenparameter InputIterator.

time_get::time_get

Der Konstruktor für Objekte des Typs time_get.

explicit time_get(size_t refs = 0);

Parameter

Refs
Integerwert, der zum Angeben des Speicherverwaltungstyps für das Objekt verwendet wird.

Hinweise

Die möglichen Werte für den Refs-Parameter und deren Bedeutung sind:

  • 0: Die Lebensdauer des Objekts wird von den Gebietsschemas verwaltet, in denen es enthalten ist.

  • 1: Die Lebensdauer des Objekts muss manuell verwaltet werden.

  • > 1: Diese Werte sind nicht definiert.

Direkte Beispiele hierfür sind nicht möglich, da der Destruktor geschützt ist.

Der Konstruktor initialisiert sein Basisobjekt mit locale::facet(refs).

Siehe auch

<locale>
time_base-Klasse
Threadsicherheit in der C++-Standardbibliothek