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)