Scroll to navigation

std::time_get(3) C++ Standard Libary std::time_get(3)

NAME

std::time_get - std::time_get

Synopsis


Defined in header <locale>
template<


class CharT,
class InputIt = std::istreambuf_iterator<CharT>


> class time_get;


Class template std::time_get encapsulates date and time parsing rules. The I/O
manipulator std::get_time uses the std::time_get facet of the I/O stream's locale to
convert text input to a std::tm object.


std-time get-inheritance.svg


Inheritance diagram

Type requirements


-
InputIt must meet the requirements of LegacyInputIterator.

Specializations


Two standalone (locale-independent) full specializations and two partial
specializations are provided by the standard library:


Defined in header <locale>
std::time_get<char> parses narrow string representations of date and
time
std::time_get<wchar_t> parses wide string representations of date and time
std::time_get<char, InputIt> parses narrow string representations of date and
time using custom input iterator
std::time_get<wchar_t, InputIt> parses wide string representations of date and time
using custom input iterator


In addition, every locale object constructed in a C++ program implements its own
(locale-specific) versions of these specializations.

Member types


Member type Definition
char_type CharT
iter_type InputIt

Member functions


constructor constructs a new time_get facet
(public member function)
destructor destructs a time_get facet
(protected member function)
date_order invokes do_date_order
(public member function)
get_time invokes do_get_time
(public member function)
get_date invokes do_get_date
(public member function)
get_weekday invokes do_get_weekday
(public member function)
get_monthname invokes do_get_monthname
(public member function)
get_year invokes do_get_year
(public member function)
get invokes do_get
(C++11) (public member function)

Member objects


static std::locale::id id id of the locale
(public member object)

Protected member functions


do_date_order obtains preferred ordering of day, month, and year
[virtual] (virtual protected member function)
do_get_time extracts hours, minutes, and seconds from input stream
[virtual] (virtual protected member function)
do_get_date extracts month, day, and year from input stream
[virtual] (virtual protected member function)
do_get_weekday extracts the name of a day of the week from input stream
[virtual] (virtual protected member function)
do_get_monthname extacts a month name from input stream
[virtual] (virtual protected member function)
do_get_year extracts a year from input stream
[virtual] (virtual protected member function)
do_get extracts date/time components from input stream, according to the
[virtual] (C++11) specified format
(virtual protected member function)

Inherited from std::time_base


Type Definition
dateorder date order enumeration type, defining the values no_order, dmy, mdy, ymd,
and ydm

Example


note: choose clang to observe the output. libstdc++ does not correctly implement the
%b specifier: bug 78714

// Run this code


#include <iostream>
#include <sstream>
#include <locale>
#include <iomanip>


int main()
{
std::tm t = {};
std::istringstream ss("2011-Februar-18 23:12:34");
ss.imbue(std::locale("de_DE.utf-8"));
ss >> std::get_time(&t, "%Y-%b-%d %H:%M:%S");
if (ss.fail()) {
std::cout << "Parse failed\n";
} else {
std::cout << std::put_time(&t, "%c") << '\n';
}
}

Possible output:


Sun Feb 18 23:12:34 2011

See also


time_put formats contents of struct std::tm for output as character sequence
(class template)
get_time parses a date/time value of specified format
(C++11) (function template)

2022.07.31 http://cppreference.com