Udostępnij za pośrednictwem


time_get — Klasa

Szablon klasy opisuje obiekt, który może służyć jako aspekt ustawień regionalnych do kontrolowania konwersji sekwencji typu CharType na wartości czasu.

Składnia

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

Parametry

Chartype
Typ używany w programie do kodowania znaków.

InputIterator
Iterator, z którego są odczytywane wartości czasu.

Uwagi

Podobnie jak w przypadku dowolnego zestawu reguł ustawień regionalnych, identyfikator obiektu statycznego ma początkową przechowywaną wartość zero. Pierwsza próba uzyskania dostępu do przechowywanej wartości przechowuje unikatową wartość dodatnią w identyfikatorze.

Konstruktory

Konstruktor opis
time_get Konstruktor dla obiektów typu time_get.

Typedefs

Nazwa typu opis
Char_type Typ opisujący znak używany przez ustawienie regionalne.
iter_type Typ, który opisuje iterator danych wejściowych.

Funkcje składowe

Funkcja składowa opis
date_order Zwraca kolejność dat używaną przez zestaw reguł.
do_date_order Chroniona funkcja wirtualna elementu członkowskiego, wywoływana, aby zwrócić kolejność dat używaną przez zestaw reguł.
do_get Odczytuje i konwertuje dane znakowe na wartość czasu.
do_get_date Chroniona funkcja wirtualna elementu członkowskiego wywoływana w celu przeanalizowania ciągu jako daty wygenerowanej x przez specyfikator dla elementu strftime.
do_get_monthname Chroniona funkcja wirtualna elementu członkowskiego, która jest wywoływana, aby przeanalizować ciąg jako nazwę miesiąca.
do_get_time Chroniona funkcja wirtualna elementu członkowskiego wywoływana w celu przeanalizowania ciągu jako daty wygenerowanej X przez specyfikator dla elementu strftime.
do_get_weekday Chroniona funkcja wirtualna elementu członkowskiego, która jest wywoływana, aby przeanalizować ciąg jako nazwę dnia tygodnia.
do_get_year Chroniona funkcja wirtualna elementu członkowskiego, która jest wywoływana, aby przeanalizować ciąg jako nazwę roku.
get Odczytuje ze źródła danych znakowych i konwertuje te dane na czas, który jest przechowywany w strukturze czasu.
get_date Analizuje ciąg jako datę wygenerowaną x przez specyfikator .strftime
get_monthname Analizuje ciąg jako nazwę miesiąca.
get_time Analizuje ciąg jako datę wygenerowaną X przez specyfikator .strftime
get_weekday Analizuje ciąg jako nazwę dnia tygodnia.
get_year Analizuje ciąg jako nazwę roku.

Wymagania

Nagłówek:<ustawienia regionalne>

Przestrzeń nazw: std

time_get::char_type

Typ opisujący znak używany przez ustawienie regionalne.

typedef CharType char_type;

Uwagi

Typ jest synonimem parametru CharType szablonu.

time_get::d ate_order

Zwraca kolejność dat używaną przez zestaw reguł.

dateorder date_order() const;

Wartość zwracana

Kolejność dat używana przez zestaw reguł.

Uwagi

Funkcja składowa zwraca do_date_order.

Przykład

// 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

Chroniona funkcja wirtualna elementu członkowskiego, wywoływana, aby zwrócić kolejność dat używaną przez zestaw reguł.

virtual dateorder do_date_order() const;

Wartość zwracana

Kolejność dat używana przez zestaw reguł.

Uwagi

Funkcja wirtualnego chronionego elementu członkowskiego zwraca wartość typu time_base::d ateorder, która opisuje kolejność dopasowania składników daty przez do_get_date. W tej implementacji wartość jest time_base::mdy odpowiadająca datom formularza 2 grudnia 1979 r.

Przykład

Zobacz przykład date_order, który wywołuje metodę do_date_order.

time_get::d o_get

Odczytuje i konwertuje dane znakowe na wartość czasu. Akceptuje jeden specyfikator konwersji i modyfikator.

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;

Parametry

Pierwszym
Iterator danych wejściowych wskazujący początek sekwencji do przekonwertowania.

Ostatnio
Iterator danych wejściowych wskazujący koniec sekwencji.

iosbase
Obiekt strumienia.

state
Pole w bazie iosbase, w którym odpowiednie elementy maski bitów są ustawione tak, aby wskazywały błędy.

Ptm
Wskaźnik do struktury czasu, w której ma być przechowywany czas.

Fmt
Znak specyfikatora konwersji.

Mod
Opcjonalny znak modyfikatora.

Wartość zwracana

Zwraca iterator, który wyznacza pierwszy niekonwertowany element. Błąd konwersji ustawia element ios_base::failbitstate i zwraca wartość pierwszą.

Uwagi

Funkcja wirtualna składowa konwertuje i pomija jeden lub więcej elementów wejściowych w zakresie [first, last), aby określić wartości przechowywane w co najmniej jednym elemencie członkowskim *pt. Błąd konwersji ustawia element ios_base::failbitstate i zwraca wartość pierwszą. W przeciwnym razie funkcja zwraca iterator wyznaczający pierwszy niekonwertowany element.

Specyfikatory konwersji to:

'a' lub 'A' — zachowuje się tak samo jak time_get::get_weekday.

'b', 'B'lub 'h' - zachowuje się tak samo jak time_get::get_monthname.

'c' -- zachowuje się tak samo jak "%b %d %H : %M : %S %Y".

'C' -- konwertuje pole wejściowe dziesiętne w zakresie [0, 99] na wartość val i przechowuje val * 100 - 1900 w pliku pt-&tm_year.

'd'lub 'e' — konwertuje pole wejściowe dziesiętne w zakresie [1, 31] i przechowuje jego wartość w .pt-&tm_mday

'D' -- zachowuje się tak samo jak "%m / %d / %y".

'H'-- konwertuje pole wejściowe dziesiętne w zakresie [0, 23] i przechowuje jego wartość w .pt-&tm_hour

'I'-- konwertuje pole wejściowe dziesiętne w zakresie [0, 11] i przechowuje jego wartość w .pt-&tm_hour

'j' -- konwertuje pole wejściowe dziesiętne w zakresie [1, 366] i przechowuje jego wartość w pt-&tm_yday.

'm' -- konwertuje pole wejściowe dziesiętne w zakresie [1, 12] na wartość val i przechowuje w pliku i przechowuje val - 1 jego wartość w pt-&tm_mon.

'M' -- konwertuje pole wejściowe dziesiętne w zakresie [0, 59] i przechowuje jego wartość w pt-&tm_min.

'n' lub 't' — zachowuje się tak samo jak " ".

'p' -- konwertuje wartości "AM" lub "am" na zero i "PM" lub "PM" na 12 i dodaje tę wartość do pt-&tm_hour.

'r' -- zachowuje się tak samo jak "%I : %M : %S %p".

'R' -- zachowuje się tak samo jak "%H %M".

'S' -- konwertuje pole wejściowe dziesiętne w zakresie [0, 59] i przechowuje jego wartość w pt-&tm_sec.

'T' lub 'X' — zachowuje się tak samo jak "%H : %M : S".

'U' -- konwertuje pole wejściowe dziesiętne w zakresie [0, 53] i przechowuje jego wartość w pt-&tm_yday.

'w' -- konwertuje pole wejściowe dziesiętne w zakresie [0, 6] i przechowuje jego wartość w pt-&tm_wday.

'W' -- konwertuje pole wejściowe dziesiętne w zakresie [0, 53] i przechowuje jego wartość w pt-&tm_yday.

'x' -- zachowuje się tak samo jak "%d / %m / %y".

'y' -- konwertuje pole wejściowe dziesiętne w zakresie [0, 99] na wartość val i przechowuje val < 69 val + 100 : val w pliku pt-&tm_year.

'Y' -- zachowuje się tak samo jak time_get::get_year.

Wszystkie inne zestawy ios_base::failbit specyfikatora konwersji w state i zwracane. W tej implementacji żaden modyfikator nie ma wpływu.

time_get::d o_get_date

Chroniona funkcja wirtualna elementu członkowskiego, która jest wywoływana, aby przeanalizować ciąg jako datę wygenerowaną przez specyfikator x dla strftime.

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

Parametry

Pierwszym
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.

Ostatnio
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.

iosbase
Flaga formatu, która po ustawieniu wskazuje, że symbol waluty jest opcjonalny; w przeciwnym razie jest to wymagane.

state
Ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.

Ptm
Wskaźnik, w którym mają być przechowywane informacje o dacie.

Wartość zwracana

Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.

Uwagi

Wirtualna chroniona funkcja składowa próbuje dopasować elementy sekwencyjne rozpoczynające się na początku w sekwencji [ first, last), dopóki nie rozpozna kompletnego, nieistnienego pola wejściowego daty. Jeśli to pole zakończy się pomyślnie, przekonwertuje to pole na równoważną wartość jako składniki tm::tm_mon, tm::tm_day i tm::tm_year, a wyniki są przechowywane odpowiednio w ptm->tm_monplikach , ptm->tm_dayi ptm->tm_year. Zwraca iterator wyznaczający pierwszy element poza polem wejściowym daty. W przeciwnym razie funkcja ustawia stan iosbase::failbit. Zwraca iterator wyznaczający pierwszy element poza dowolnym prefiksem prawidłowego pola wejściowego daty. W obu przypadkach, jeśli wartość zwracana jest ostatnia, funkcja ustawia ios_base::eofbit stan.

Format pola wejściowego daty jest zależny od ustawień regionalnych. Dla domyślnych ustawień regionalnych pole danych wejściowych daty ma formę MMM DD, RRRR, gdzie:

  • MmM jest dopasowywany przez wywołanie get_monthname, dając miesiąc.

  • DD to sekwencja cyfr dziesiętnych, których odpowiadająca wartość liczbowa musi znajdować się w zakresie [1, 31], dając dzień miesiąca.

  • RRRR jest dopasowywany przez wywołanie get_year, dając rok.

Spacje literału i przecinki muszą być zgodne z odpowiednimi elementami w sekwencji danych wejściowych.

Przykład

Zobacz przykład get_date, który wywołuje metodę do_get_date.

time_get::d o_get_monthname

Chroniona funkcja wirtualna elementu członkowskiego, która jest wywoływana, aby przeanalizować ciąg jako nazwę miesiąca.

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

Parametry

Pierwszym
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.

Ostatnio
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.

iosbase
Nieużywany.

state
Parametr wyjściowy, który ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.

Ptm
Wskaźnik, w którym mają być przechowywane informacje o miesiącu.

Wartość zwracana

Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.

Uwagi

Wirtualna chroniona funkcja składowa próbuje dopasować elementy sekwencyjne rozpoczynające się na początku w sekwencji [ first, last), dopóki nie rozpozna kompletnego, nieistnienego pola wejściowego miesiąca. Jeśli to pole zakończy się pomyślnie, przekonwertuje to pole na równoważną wartość jako składnik tm::tm_mon i zapisuje wynik w elemencie ptm->tm_mon. Zwraca iterator wyznaczający pierwszy element poza polem wejściowym miesiąca. W przeciwnym razie funkcja ustawia stan ios_base::failbit. Zwraca iterator wyznaczający pierwszy element poza dowolnym prefiksem prawidłowego pola wejściowego miesiąca. W obu przypadkach, jeśli wartość zwracana jest ostatnia, funkcja ustawia ios_base::eofbit stan.

Pole danych wejściowych miesiąca jest sekwencją zgodną z najdłuższym zestawem sekwencji specyficznych dla ustawień regionalnych, takich jak Jan, Styczeń, Luty, Luty itd. Przekonwertowana wartość to liczba miesięcy od stycznia.

Przykład

Zobacz przykład get_monthname, który wywołuje metodę do_get_monthname.

time_get::d o_get_time

Chroniona funkcja wirtualna elementu członkowskiego wywoływana w celu przeanalizowania ciągu jako daty wygenerowanej przez specyfikator X dla elementu strftime.

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

Parametry

Pierwszym
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.

Ostatnio
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.

iosbase
Nieużywany.

state
Ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.

Ptm
Wskaźnik, w którym mają być przechowywane informacje o dacie.

Wartość zwracana

Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.

Uwagi

Wirtualna chroniona funkcja składowa próbuje dopasować elementy sekwencyjne rozpoczynające się na początku w sekwencji [ first, last), dopóki nie rozpozna kompletnego, nieistnienego pola wejściowego czasu. Jeśli to pole zakończy się pomyślnie, konwertuje to pole na równoważną wartość jako składniki tm::tm_hour, tm::tm_mini tm::tm_sec, i przechowuje wyniki odpowiednio w ptm->tm_hourparametrach , ptm->tm_mini ptm->tm_sec. Zwraca iterator wyznaczający pierwszy element poza polem wprowadzania czasu. W przeciwnym razie funkcja ustawia stan ios_base::failbit. Zwraca iterator wyznaczający pierwszy element poza dowolnym prefiksem prawidłowego pola wejściowego czasu. W obu przypadkach, jeśli wartość zwracana jest ostatnia, funkcja ustawia ios_base::eofbit stan.

W tej implementacji pole wprowadzania czasu ma postać HH:MM:SS, gdzie:

  • HH to sekwencja cyfr dziesiętnych, których odpowiadająca mu wartość liczbowa musi znajdować się w zakresie [0, 24), dając godzinę dnia.

  • MM to sekwencja cyfr dziesiętnych, których odpowiadająca mu wartość liczbowa musi znajdować się w zakresie [0, 60), co daje minuty po godzinie.

  • SS to sekwencja cyfr dziesiętnych, których odpowiadająca wartość liczbowa musi znajdować się w zakresie [0, 60), dając sekundy po minucie.

Dwukropki literału muszą być zgodne z odpowiednimi elementami w sekwencji danych wejściowych.

Przykład

Zobacz przykład get_time, który wywołuje metodę do_get_time.

time_get::d o_get_weekday

Chroniona funkcja wirtualna elementu członkowskiego, która jest wywoływana, aby przeanalizować ciąg jako nazwę dnia tygodnia.

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

Parametry

Pierwszym
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.

Ostatnio
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.

iosbase
Flaga formatu, która po ustawieniu wskazuje, że symbol waluty jest opcjonalny; w przeciwnym razie jest to wymagane.

state
Ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.

Ptm
Wskaźnik, do którego mają być przechowywane informacje dnia tygodnia.

Wartość zwracana

Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.

Uwagi

Wirtualna chroniona funkcja składowa próbuje dopasować elementy sekwencyjne rozpoczynające się na początku w sekwencji [ first, last), dopóki nie rozpozna kompletnego, nieistnienego pola wejściowego dnia powszedniego. Jeśli to pole zakończy się pomyślnie, przekonwertuje to pole na równoważną wartość jako składnik tm::tm_wday i zapisuje wynik w elemencie ptm->tm_wday. Zwraca iterator wyznaczający pierwszy element poza polem wejściowym dnia tygodnia. W przeciwnym razie funkcja ustawia stan ios_base::failbit. Zwraca iterator wyznaczający pierwszy element poza prefiksem prawidłowego pola wejściowego dnia tygodnia. W obu przypadkach, jeśli wartość zwracana jest ostatnia, funkcja ustawia ios_base::eofbit stan.

Pole wejściowe dni powszednie to sekwencja zgodna z najdłuższym zestawem sekwencji specyficznych dla ustawień regionalnych, takich jak Sun, Sunday, Mon, Monday itd. Przekonwertowana wartość to liczba dni od niedzieli.

Przykład

Zobacz przykład get_weekday, który wywołuje metodę do_get_weekday.

time_get::d o_get_year

Chroniona funkcja wirtualna elementu członkowskiego, która jest wywoływana, aby przeanalizować ciąg jako nazwę roku.

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

Parametry

Pierwszym
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.

Ostatnio
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.

iosbase
Flaga formatu, która po ustawieniu wskazuje, że symbol waluty jest opcjonalny; w przeciwnym razie jest to wymagane.

state
Ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.

Ptm
Wskaźnik, w którym mają być przechowywane informacje o roku.

Wartość zwracana

Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.

Uwagi

Wirtualna chroniona funkcja składowa próbuje dopasować elementy sekwencyjne rozpoczynające się na początku w sekwencji [ first, last), dopóki nie rozpozna kompletnego, nieistnienego pola wejściowego roku. Jeśli to pole zakończy się pomyślnie, przekonwertuje to pole na równoważną wartość jako składnik tm::tm_year i zapisuje wynik w elemencie ptm->tm_year. Zwraca iterator wyznaczający pierwszy element poza polem wejściowym roku. W przeciwnym razie funkcja ustawia stan ios_base::failbit. Zwraca iterator wyznaczający pierwszy element poza dowolnym prefiksem prawidłowego pola wejściowego roku. W obu przypadkach, jeśli wartość zwracana jest ostatnia, funkcja ustawia ios_base::eofbit stan.

Pole wejściowe roku jest sekwencją cyfr dziesiętnych, których odpowiadająca wartość liczbowa musi znajdować się w zakresie [1900, 2036). Przechowywana wartość to ta wartość minus 1900. W tej implementacji wartości w zakresie [69, 136) reprezentują zakres lat [1969, 2036). Wartości w zakresie [0, 69) są również dopuszczalne, ale mogą reprezentować zakres lat [1900, 1969) lub [2000, 2069), w zależności od określonego środowiska tłumaczenia.

Przykład

Zobacz przykład get_year, który wywołuje metodę do_get_year.

time_get::get

Odczytuje ze źródła danych znakowych i konwertuje te dane na czas, który jest przechowywany w strukturze czasu. Pierwsza funkcja akceptuje jeden specyfikator konwersji i modyfikator, drugi akceptuje kilka.

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;

Parametry

Pierwszym
Iterator wejściowy wskazujący, gdzie rozpoczyna się sekwencja do przekonwertowania.

Ostatnio
Iterator wejściowy wskazujący koniec sekwencji do przekonwertowania.

iosbase
Strumień.

state
Odpowiednie elementy maski bitów są ustawiane dla stanu strumienia w celu wskazania błędów.

Ptm
Wskaźnik do struktury czasu, w której ma być przechowywany czas.

Fmt
Znak specyfikatora konwersji.

Mod
Opcjonalny znak modyfikatora.

fmt_first
Wskazuje, gdzie zaczynają się dyrektywy formatu.

fmt_last
Wskazuje na koniec dyrektyw formatu.

Wartość zwracana

Zwraca iterator do pierwszego znaku po danych użytych do przypisania struktury *ptmczasu .

Uwagi

Pierwsza funkcja składowa zwraca wartość do_get(first, last, iosbase, state, ptm, fmt, mod).

Druga funkcja składowa wywołuje do_get pod kontrolą formatu rozdzielanego przez [fmt_first, fmt_last). Traktuje format jako sekwencję pól, z których każda określa konwersję zero lub więcej elementów wejściowych rozdzielonych przez [first, last). Zwraca iterator wyznaczający pierwszy niekonwertowany element. Istnieją trzy rodzaje pól:

Procent (%) w formacie, a następnie opcjonalny modyfikator w zestawie [EOQ#], a następnie specyfikator konwersji fmt, zastępuje najpierw wartość zwracaną przez do_get(first, last, iosbase, state, ptm, fmt, mod). Błąd konwersji ustawia ios_base::failbit stan i zwraca.

Element odstępu w formacie pomija ostatnie zero lub więcej elementów białych znaków wejściowych.

Każdy inny element w formacie musi być zgodny z następnym elementem wejściowym, który jest pomijany. Niepowodzenie dopasowania ustawia ios_base::failbit stan i zwraca wartość.

time_get::get_date

Analizuje ciąg jako datę wygenerowaną przez specyfikator x dla elementu strftime.

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

Parametry

Pierwszym
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.

Ostatnio
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.

iosbase
Flaga formatu, która po ustawieniu wskazuje, że symbol waluty jest opcjonalny; w przeciwnym razie jest to wymagane.

state
Ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.

Ptm
Wskaźnik, w którym mają być przechowywane informacje o dacie.

Wartość zwracana

Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.

Uwagi

Funkcja składowa zwraca wartość do_get_date(first, last, iosbase, state). ptm

Należy pamiętać, że miesiące są liczone z zakresu od 0 do 11.

Przykład

// 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

Analizuje ciąg jako nazwę miesiąca.

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

Parametry

Pierwszym
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.

Ostatnio
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.

iosbase
Nieużywany.

state
Parametr wyjściowy, który ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.

Ptm
Wskaźnik, w którym mają być przechowywane informacje o miesiącu.

Wartość zwracana

Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.

Uwagi

Funkcja składowa zwraca do_get_monthname(first, last, iosbase, stateptm).

Przykład

// 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

Analizuje ciąg jako datę wygenerowaną przez specyfikator X dla elementu strftime.

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

Parametry

Pierwszym
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.

Ostatnio
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.

iosbase
Nieużywany.

state
Ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.

Ptm
Wskaźnik, w którym mają być przechowywane informacje o dacie.

Wartość zwracana

Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.

Uwagi

Funkcja składowa zwraca do_get_time(first, last, iosbase, state). ptm

Przykład

// 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

Analizuje ciąg jako nazwę dnia tygodnia.

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

Parametry

Pierwszym
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.

Ostatnio
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.

iosbase
Flaga formatu, która po ustawieniu wskazuje, że symbol waluty jest opcjonalny; w przeciwnym razie jest to wymagane.

state
Ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.

Ptm
Wskaźnik, do którego mają być przechowywane informacje dnia tygodnia.

Wartość zwracana

Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.

Uwagi

Funkcja składowa zwraca do_get_weekday(first, last, iosbase, state). ptm

Przykład

// 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

Analizuje ciąg jako nazwę roku.

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

Parametry

Pierwszym
Iterator wejściowy odnoszący się do początku sekwencji, która ma zostać przekonwertowana.

Ostatnio
Iterator wejściowy odnoszący się do końca sekwencji, która ma zostać przekonwertowana.

iosbase
Flaga formatu, która po ustawieniu wskazuje, że symbol waluty jest opcjonalny; w przeciwnym razie jest to wymagane.

state
Ustawia odpowiednie elementy maski bitów dla stanu strumienia zgodnie z tym, czy operacje zakończyły się pomyślnie.

Ptm
Wskaźnik, w którym mają być przechowywane informacje o roku.

Wartość zwracana

Iterator wejściowy odnoszący się do pierwszego elementu poza polem wejściowym.

Uwagi

Funkcja składowa zwraca do_get_year(first, last, iosbase, stateptm).

Przykład

// 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

Typ, który opisuje iterator danych wejściowych.

typedef InputIterator iter_type;

Uwagi

Typ jest synonimem parametru szablonu InputIterator.

time_get::time_get

Konstruktor dla obiektów typu time_get.

explicit time_get(size_t refs = 0);

Parametry

Bibl
Wartość całkowita używana do określania typu zarządzania pamięcią dla obiektu.

Uwagi

Możliwe wartości parametru refs i ich istotności to:

  • 0: Okres istnienia obiektu jest zarządzany przez ustawienia regionalne, które go zawierają.

  • 1: Okres istnienia obiektu musi być zarządzany ręcznie.

  • > 1: Te wartości nie są zdefiniowane.

Nie są możliwe żadne bezpośrednie przykłady, ponieważ destruktor jest chroniony.

Konstruktor inicjuje obiekt podstawowy za pomocą ustawień regionalnych::facet(refs).

Zobacz też

<Ustawień regionalnych>
time_base, klasa
Bezpieczeństwo wątku w standardowej bibliotece C++