time_get Class
The class template describes an object that can serve as a locale facet to control conversions of sequences of type CharType
to time values.
Syntax
template <class CharType,
class InputIterator = istreambuf_iterator<CharType>>
class time_get : public time_base;
Parameters
CharType
The type used within a program to encode characters.
InputIterator
The iterator from which the time values are read.
Remarks
As with any locale facet, the static object ID has an initial stored value of zero. The first attempt to access its stored value stores a unique positive value in id.
Constructors
Constructor | Description |
---|---|
time_get | The constructor for objects of type time_get . |
Typedefs
Type name | Description |
---|---|
char_type | A type that is used to describe a character used by a locale. |
iter_type | A type that describes an input iterator. |
Member functions
Member function | Description |
---|---|
date_order | Returns the date order used by a facet. |
do_date_order | A protected virtual member function that is called to return the date order used by a facet. |
do_get | Reads and converts character data to a time value. |
do_get_date | A protected virtual member function that is called to parse a string as the date produced by the x specifier for strftime . |
do_get_monthname | A protected virtual member function that is called to parse a string as the name of the month. |
do_get_time | A protected virtual member function that is called to parse a string as the date produced by the X specifier for strftime . |
do_get_weekday | A protected virtual member function that is called to parse a string as the name of the day of the week. |
do_get_year | A protected virtual member function that is called to parses a string as the name of the year. |
get | Reads from a source of character data and converts that data to a time that is stored in a time struct. |
get_date | Parses a string as the date produced by the x specifier for strftime . |
get_monthname | Parses a string as the name of the month. |
get_time | Parses a string as the date produced by the X specifier for strftime . |
get_weekday | Parses a string as the name of the day of the week. |
get_year | Parses a string as the name of the year. |
Requirements
Header: <locale>
Namespace: std
time_get::char_type
A type that is used to describe a character used by a locale.
typedef CharType char_type;
Remarks
The type is a synonym for the template parameter CharType.
time_get::date_order
Returns the date order used by a facet.
dateorder date_order() const;
Return Value
The date order used by a facet.
Remarks
The member function returns do_date_order.
Example
// 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::do_date_order
A protected virtual member function that is called to return the date order used by a facet.
virtual dateorder do_date_order() const;
Return Value
The date order used by a facet.
Remarks
The virtual protected member function returns a value of type time_base::dateorder, which describes the order in which date components are matched by do_get_date. In this implementation, the value is time_base::mdy, corresponding to dates of the form December 2, 1979.
Example
See the example for date_order, which calls do_date_order
.
time_get::do_get
Reads and converts character data to a time value. Accepts one conversion specifier and modifier.
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;
Parameters
first
An Input iterator that indicates the start of the sequence to convert.
last
An Input iterator that indicates the end of the sequence.
iosbase
A stream object.
state
A field in iosbase where appropriate bitmask elements are set to indicate errors.
ptm
A pointer to the time structure where the time is to be stored.
fmt
A conversion specifier character.
mod
An optional modifier character.
Return Value
Returns an iterator that designates the first unconverted element. A conversion failure sets ios_base::failbit
in state
and returns first.
Remarks
The virtual member function converts and skips one or more input elements in the range [first
, last
) to determine the values stored in one or more members of *pt
. A conversion failure sets ios_base::failbit
in state
and returns first. Otherwise, the function returns an iterator designating the first unconverted element.
The conversion specifiers are:
'a'
or 'A'
-- behaves the same as time_get::get_weekday.
'b'
, 'B'
, or 'h'
-- behaves the same as time_get::get_monthname.
'c'
-- behaves the same as "%b %d %H : %M : %S %Y"
.
'C'
-- converts a decimal input field in the range [0, 99] to the value val
and stores val * 100 - 1900
in pt-&tm_year
.
'd'
or 'e'
-- converts a decimal input field in the range [1, 31] and stores its value in pt-&tm_mday
.
'D'
-- behaves the same as "%m / %d / %y"
.
'H'
-- converts a decimal input field in the range [0, 23] and stores its value in pt-&tm_hour
.
'I'
-- converts a decimal input field in the range [0, 11] and stores its value in pt-&tm_hour
.
'j'
-- converts a decimal input field in the range [1, 366] and stores its value in pt-&tm_yday
.
'm'
-- converts a decimal input field in the range [1, 12] to the value val
and stores val - 1
in and stores its value in pt-&tm_mon
.
'M'
-- converts a decimal input field in the range [0, 59] and stores its value in pt-&tm_min
.
'n'
or 't'
-- behaves the same as " "
.
'p'
-- converts "AM" or "am" to zero and "PM" or "PM" to 12 and adds this value to pt-&tm_hour
.
'r'
-- behaves the same as "%I : %M : %S %p"
.
'R'
-- behaves the same as "%H %M"
.
'S'
-- converts a decimal input field in the range [0, 59] and stores its value in pt-&tm_sec
.
'T'
or 'X'
-- behaves the same as "%H : %M : S"
.
'U'
-- converts a decimal input field in the range [0, 53] and stores its value in pt-&tm_yday
.
'w'
-- converts a decimal input field in the range [0, 6] and stores its value in pt-&tm_wday
.
'W'
-- converts a decimal input field in the range [0, 53] and stores its value in pt-&tm_yday
.
'x'
-- behaves the same as "%d / %m / %y"
.
'y'
-- converts a decimal input field in the range [0, 99] to the value val
and stores val < 69 val + 100 : val
in pt-&tm_year
.
'Y'
-- behaves the same as time_get::get_year.
Any other conversion specifier sets ios_base::failbit
in state
and returns. In this implementation, any modifier has no effect.
time_get::do_get_date
A protected virtual member function that is called to parse a string as the date produced by the x specifier for strftime
.
virtual iter_type do_get_date(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameters
first
Input iterator addressing the beginning of the sequence to be converted.
last
Input iterator addressing the end of the sequence to be converted.
iosbase
A format flag which when set indicates that the currency symbol is optional; otherwise, it is required.
state
Sets the appropriate bitmask elements for the stream state according to whether the operations succeeded.
ptm
A pointer to where the date information is to be stored.
Return Value
An input iterator addressing the first element beyond the input field.
Remarks
The virtual protected member function tries to match sequential elements beginning at first in the sequence [ first
, last
) until it has recognized a complete, nonempty date input field. If successful, it converts this field to its equivalent value as the components tm::tm_mon, tm::tm_day, and tm::tm_year, and stores the results in ptm->tm_mon
, ptm->tm_day
, and ptm->tm_year
, respectively. It returns an iterator designating the first element beyond the date input field. Otherwise, the function sets iosbase::failbit
in state. It returns an iterator designating the first element beyond any prefix of a valid date input field. In either case, if the return value equals last, the function sets ios_base::eofbit
in state.
The format for the date input field is locale dependent. For the default locale, the date input field has the form MMM DD, YYYY, where:
MMM is matched by calling get_monthname, giving the month.
DD is a sequence of decimal digits whose corresponding numeric value must be in the range [1, 31], giving the day of the month.
YYYY is matched by calling get_year, giving the year.
The literal spaces and commas must match corresponding elements in the input sequence.
Example
See the example for get_date, which calls do_get_date
.
time_get::do_get_monthname
A protected virtual member function that is called to parse a string as the name of the month.
virtual iter_type do_get_monthname(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameters
first
Input iterator addressing the beginning of the sequence to be converted.
last
Input iterator addressing the end of the sequence to be converted.
iosbase
Unused.
state
An output parameter that sets the appropriate bitmask elements for the stream state according to whether the operations succeeded.
ptm
A pointer to where the month information is to be stored.
Return Value
An input iterator addressing the first element beyond the input field.
Remarks
The virtual protected member function tries to match sequential elements beginning at first in the sequence [ first
, last
) until it has recognized a complete, nonempty month input field. If successful, it converts this field to its equivalent value as the component tm::tm_mon, and stores the result in ptm->tm_mon
. It returns an iterator designating the first element beyond the month input field. Otherwise, the function sets ios_base::failbit
in state. It returns an iterator designating the first element beyond any prefix of a valid month input field. In either case, if the return value equals last, the function sets ios_base::eofbit
in state.
The month input field is a sequence that matches the longest of a set of locale-specific sequences, such as Jan, January, Feb, February, and so on. The converted value is the number of months since January.
Example
See the example for get_monthname, which calls do_get_monthname
.
time_get::do_get_time
A protected virtual member function that is called to parse a string as the date produced by the X specifier for strftime
.
virtual iter_type do_get_time(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameters
first
Input iterator addressing the beginning of the sequence to be converted.
last
Input iterator addressing the end of the sequence to be converted.
iosbase
Unused.
state
Sets the appropriate bitmask elements for the stream state according to whether the operations succeeded.
ptm
A pointer to where the date information is to be stored.
Return Value
An input iterator addressing the first element beyond the input field.
Remarks
The virtual protected member function tries to match sequential elements beginning at first in the sequence [ first
, last
) until it has recognized a complete, nonempty time input field. If successful, it converts this field to its equivalent value as the components tm::tm_hour
, tm::tm_min
, and tm::tm_sec
, and stores the results in ptm->tm_hour
, ptm->tm_min
, and ptm->tm_sec
, respectively. It returns an iterator designating the first element beyond the time input field. Otherwise, the function sets ios_base::failbit
in state. It returns an iterator designating the first element beyond any prefix of a valid time input field. In either case, if the return value equals last, the function sets ios_base::eofbit
in state.
In this implementation, the time input field has the form HH:MM:SS, where:
HH is a sequence of decimal digits whose corresponding numeric value must be in the range [0, 24), giving the hour of the day.
MM is a sequence of decimal digits whose corresponding numeric value must be in the range [0, 60), giving the minutes past the hour.
SS is a sequence of decimal digits whose corresponding numeric value must be in the range [0, 60), giving the seconds past the minute.
The literal colons must match corresponding elements in the input sequence.
Example
See the example for get_time, which calls do_get_time
.
time_get::do_get_weekday
A protected virtual member function that is called to parse a string as the name of the day of the week.
virtual iter_type do_get_weekday(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameters
first
Input iterator addressing the beginning of the sequence to be converted.
last
Input iterator addressing the end of the sequence to be converted.
iosbase
A format flag which when set indicates that the currency symbol is optional; otherwise, it is required.
state
Sets the appropriate bitmask elements for the stream state according to whether the operations succeeded.
ptm
A pointer to where the weekday information is to be stored.
Return Value
An input iterator addressing the first element beyond the input field.
Remarks
The virtual protected member function tries to match sequential elements beginning at first in the sequence [ first
, last
) until it has recognized a complete, nonempty weekday input field. If successful, it converts this field to its equivalent value as the component tm::tm_wday, and stores the result in ptm->tm_wday
. It returns an iterator designating the first element beyond the weekday input field. Otherwise, the function sets ios_base::failbit
in state. It returns an iterator designating the first element beyond any prefix of a valid weekday input field. In either case, if the return value equals last, the function sets ios_base::eofbit
in state.
The weekday input field is a sequence that matches the longest of a set of locale-specific sequences, such as Sun, Sunday, Mon, Monday, and so on. The converted value is the number of days since Sunday.
Example
See the example for get_weekday, which calls do_get_weekday
.
time_get::do_get_year
A protected virtual member function that is called to parses a string as the name of the year.
virtual iter_type do_get_year(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameters
first
Input iterator addressing the beginning of the sequence to be converted.
last
Input iterator addressing the end of the sequence to be converted.
iosbase
A format flag which when set indicates that the currency symbol is optional; otherwise, it is required.
state
Sets the appropriate bitmask elements for the stream state according to whether the operations succeeded.
ptm
A pointer to where the year information is to be stored.
Return Value
An input iterator addressing the first element beyond the input field.
Remarks
The virtual protected member function tries to match sequential elements beginning at first in the sequence [ first
, last
) until it has recognized a complete, nonempty year input field. If successful, it converts this field to its equivalent value as the component tm::tm_year, and stores the result in ptm->tm_year
. It returns an iterator designating the first element beyond the year input field. Otherwise, the function sets ios_base::failbit
in state. It returns an iterator designating the first element beyond any prefix of a valid year input field. In either case, if the return value equals last, the function sets ios_base::eofbit
in state.
The year input field is a sequence of decimal digits whose corresponding numeric value must be in the range [1900, 2036). The stored value is this value minus 1900. In this implementation, values in the range [69, 136) represent the range of years [1969, 2036). Values in the range [0, 69) are also permissible, but may represent either the range of years [1900, 1969) or [2000, 2069), depending on the specific translation environment.
Example
See the example for get_year, which calls do_get_year
.
time_get::get
Reads from a source of character data and converts that data to a time that is stored in a time struct. The first function accepts one conversion specifier and modifier, the second accepts several.
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;
Parameters
first
Input iterator that indicates where the sequence to be converted starts.
last
Input iterator that indicates the end of the sequence to be converted.
iosbase
The stream.
state
The appropriate bitmask elements are set for the stream state to indicate errors.
ptm
Pointer to the time structure where the time is to be stored.
fmt
A conversion specifier character.
mod
An optional modifier character.
fmt_first
Points to where the format directives start.
fmt_last
Points to the end of the format directives.
Return Value
Returns an iterator to the first character after the data that was used to assign the time struct *ptm
.
Remarks
The first member function returns do_get(first, last, iosbase, state, ptm, fmt, mod)
.
The second member function calls do_get
under the control of the format delimited by [fmt_first, fmt_last)
. It treats the format as a sequence of fields, each of which determines the conversion of zero or more input elements delimited by [first, last)
. It returns an iterator designating the first unconverted element. There are three kinds of fields:
A per cent (%) in the format, followed by an optional modifier mod in the set [EOQ#], followed by a conversion specifier fmt, replaces first with the value returned by do_get(first, last, iosbase, state, ptm, fmt, mod)
. A conversion failure sets ios_base::failbit
in state and returns.
A whitespace element in the format skips past zero or more input whitespace elements.
Any other element in the format must match the next input element, which is skipped. A match failure sets ios_base::failbit
in state and returns.
time_get::get_date
Parses a string as the date produced by the x specifier for strftime
.
iter_type get_date(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameters
first
Input iterator addressing the beginning of the sequence to be converted.
last
Input iterator addressing the end of the sequence to be converted.
iosbase
A format flag which when set indicates that the currency symbol is optional; otherwise, it is required.
state
Sets the appropriate bitmask elements for the stream state according to whether the operations succeeded.
ptm
A pointer to where the date information is to be stored.
Return Value
An input iterator addressing the first element beyond the input field.
Remarks
The member function returns do_get_date(first
, last
, iosbase
, state
, ptm
).
Note that months are counted from 0 to 11.
Example
// 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
Parses a string as the name of the month.
iter_type get_monthname(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameters
first
Input iterator addressing the beginning of the sequence to be converted.
last
Input iterator addressing the end of the sequence to be converted.
iosbase
Unused.
state
An output parameter that sets the appropriate bitmask elements for the stream state according to whether the operations succeeded.
ptm
A pointer to where the month information is to be stored.
Return Value
An input iterator addressing the first element beyond the input field.
Remarks
The member function returns do_get_monthname(first
, last
, iosbase
, state
, ptm
).
Example
// 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
Parses a string as the date produced by the X specifier for strftime
.
iter_type get_time(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameters
first
Input iterator addressing the beginning of the sequence to be converted.
last
Input iterator addressing the end of the sequence to be converted.
iosbase
Unused.
state
Sets the appropriate bitmask elements for the stream state according to whether the operations succeeded.
ptm
A pointer to where the date information is to be stored.
Return Value
An input iterator addressing the first element beyond the input field.
Remarks
The member function returns do_get_time(first
, last
, iosbase
, state
, ptm
).
Example
// 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
Parses a string as the name of the day of the week.
iter_type get_weekday(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameters
first
Input iterator addressing the beginning of the sequence to be converted.
last
Input iterator addressing the end of the sequence to be converted.
iosbase
A format flag which when set indicates that the currency symbol is optional; otherwise, it is required.
state
Sets the appropriate bitmask elements for the stream state according to whether the operations succeeded.
ptm
A pointer to where the weekday information is to be stored.
Return Value
An input iterator addressing the first element beyond the input field.
Remarks
The member function returns do_get_weekday(first
, last
, iosbase
, state
, ptm
).
Example
// 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
Parses a string as the name of the year.
iter_type get_year(iter_type first,
iter_type last,
ios_base& iosbase,
ios_base::iostate& state,
tm* ptm) const;
Parameters
first
Input iterator addressing the beginning of the sequence to be converted.
last
Input iterator addressing the end of the sequence to be converted.
iosbase
A format flag which when set indicates that the currency symbol is optional; otherwise, it is required.
state
Sets the appropriate bitmask elements for the stream state according to whether the operations succeeded.
ptm
A pointer to where the year information is to be stored.
Return Value
An input iterator addressing the first element beyond the input field.
Remarks
The member function returns do_get_year(first
, last
, iosbase
, state
, ptm
).
Example
// 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
A type that describes an input iterator.
typedef InputIterator iter_type;
Remarks
The type is a synonym for the template parameter InputIterator.
time_get::time_get
The constructor for objects of type time_get
.
explicit time_get(size_t refs = 0);
Parameters
refs
Integer value used to specify the type of memory management for the object.
Remarks
The possible values for the refs parameter and their significance are:
0: The lifetime of the object is managed by the locales that contain it.
1: The lifetime of the object must be manually managed.
> 1: These values are not defined.
No direct examples are possible, because the destructor is protected.
The constructor initializes its base object with locale::facet(refs
).
See also
<locale>
time_base Class
Thread Safety in the C++ Standard Library