FreeBSD Manual Pages
std::get_time(3) C++ Standard Libary std::get_time(3) NAME std::get_time - std::get_time Synopsis Defined in header <iomanip> template< class CharT > (since C++11) /*unspecified*/ get_time( std::tm* tmb, const CharT* fmt ); When used in an expression in >> get_time(tmb, fmt), parses the character input as a date/time value according to format string fmt according to the std::time_get facet of the locale currently imbued in the input stream in. The resultant value is stored in a std::tm object pointed to by tmb. Parameters tmb - valid pointer to the std::tm object where the result will be stored pointer to a null-terminated CharT string specifying the con- version format The format string consists of zero or more conversion speci- fiers, whitespace characters, and ordinary characters (except %). Each ordinary character is expected to match one character in the input stream in case- insensitive comparison. Each whitespace character matches arbitrary white- space in the input string. Each conversion specification begins with % character, optionally followed by E or O modifier (ignored if unsupported by the locale), followed by the character that determines the behavior of the specifier. The format specifiers match the POSIX function strptime(): Conversion Explanation Writes to fields specifier % matches a literal %. The full conversion (none) specification must be %%. t matches any whitespace. (none) n matches any whitespace. (none) Year Y parses full year as a 4 digit decimal number, tm_year leading zeroes permitted but not required parses year in the alternative representation, EY e.g.23 (year Heisei 23) which writes tm_year 2011 to tm_year in ja_JP locale parses last 2 digits of year as a decimal number. y Range [69,99] results in values 1969 to 1999, tm_year range [00,68] results in 2000-2068 parses last 2 digits of year using the Oy alternative numeric system, e.g. is parsed tm_year as 11 in ja_JP locale Ey parses year as offset from locale's alternative tm_year calendar period %EC C parses the first 2 digits of year as a decimal tm_year number (range [00,99]) parses the name of the base year (period) in the EC locale's alternative representation, e.g. tm_year (Heisei era) in ja_JP Month b parses the month name, either full or tm_mon abbreviated, e.g. Oct h synonym of b tm_mon B synonym of b tm_mon parses the month as a decimal number (range m [01,12]), leading zeroes permitted but not tm_mon required Om parses the month using the alternative numeric tm_mon system, e.g. parses as 12 in ja_JP locale Week parses the week of the year as a decimal number U (Sunday is the first day of the week) (range tm_year, tm_wday, [00,53]), leading zeroes permitted but not tm_yday required parses the week of the year, as by %U, using the tm_year, tm_wday, OU alternative numeric system, e.g. parses tm_yday as 52 in ja_JP locale parses the week of the year as a decimal number W (Monday is the first day of the week) (range tm_year, tm_wday, [00,53]), leading zeroes permitted but not tm_yday required parses the week of the year, as by %W, using the tm_year, tm_wday, OW alternative numeric system, e.g. parses tm_yday as 52 in ja_JP locale Day of the year/month parses day of the year as a decimal number (range j [001,366]), leading zeroes permitted but not tm_yday required parses the day of the month as a decimal number d (range [01,31]), leading zeroes permitted but not tm_mday fmt - required parses the day of the month using the alternative Od numeric system, e.g parses as 27 in tm_mday ja_JP locale, leading zeroes permitted but not required e synonym of d tm_mday Oe synonym of Od tm_mday Day of the week a parses the name of the day of the week, either tm_wday full or abbreviated, e.g. Fri A synonym of a tm_wday w parses weekday as a decimal number, where Sunday tm_wday is 0 (range [0-6]) parses weekday as a decimal number, where Sunday Ow is 0, using the alternative numeric system, e.g. tm_wday parses as 2 in ja_JP locale Hour, minute, second parses the hour as a decimal number, 24 hour H clock (range [00-23]), leading zeroes permitted tm_hour but not required parses hour from 24-hour clock using the OH alternative numeric system, e.g. parses as tm_hour 18 in ja_JP locale parses hour as a decimal number, 12 hour clock I (range [01,12]), leading zeroes permitted but not tm_hour required parses hour from 12-hour clock using the OI alternative numeric system, e.g. reads as 06 tm_hour in ja_JP locale parses minute as a decimal number (range M [00,59]), leading zeroes permitted but not tm_min required parses minute using the alternative numeric OM system, e.g. parses as 25 in ja_JP tm_min locale parses second as a decimal number (range S [00,60]), leading zeroes permitted but not tm_sec required parses second using the alternative numeric OS system, e.g. parses as 24 in ja_JP tm_sec locale Other parses the locale's standard date and time string c format, e.g. Sun Oct 17 04:41:13 2010 (locale all dependent) parses the locale's alternative date and time Ec string format, e.g. expecting 23 (year all Heisei 23) instead of 2011 (year 2011) in ja_JP locale x parses the locale's standard date representation all parses the locale's alternative date Ex representation, e.g. expecting 23 (year all Heisei 23) instead of 2011 (year 2011) in ja_JP locale X parses the locale's standard time representation all EX parses the locale's alternative time all representation D equivalent to "%m / %d / %y " tm_mon, tm_mday, tm_year r parses locale's standard 12-hour clock time (in tm_hour, tm_min, POSIX, "%I : %M : %S %p") tm_sec R equivalent to "%H : %M" tm_hour, tm_min T equivalent to "%H : %M : %S" tm_hour, tm_min, tm_sec p parses the locale's equivalent of a.m. or p.m. tm_hour Note: tm_isdst is not written to, and needs to be set explic- itly for use with functions such as mktime Return value Returns an object of unspecified type such that if in is the name of an input stream of type std::basic_istream<CharT, Traits>, then the expression in >> get_time(tmb, fmt) behaves as if the following code was executed: typedef std::istreambuf_iterator<CharT, Traits> Iter; typedef std::time_get<CharT, Iter> TimeGet; std::ios_base::iostate err = std::ios_base::goodbit; const TimeGet& tg = std::use_facet<TimeGet>(in.getloc()); tg.get(Iter(in.rdbuf()), Iter(), in, err, tmb, fmt, fmt + traits::length(fmt)); if (err != std::ios_base::goodbit) in.setstate(err); Notes As specified in std::time_get::do_get, which this function calls, it's unspecified if this function zero out the fields in *tmb that are not set di- rectly by the conversion specifiers that appear in fmt: portable programs should initialize every field of *tmb to zero before calling std::get_time. Example note: choose clang to observe the output. libstdc++ does not cor- rectly 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 parses time/date values from an input character sequence into struct time_get std::tm (class template) put_time formats and outputs a date/time value according to the specified format (C++11) (function template) parse parses a chrono object from a stream (C++20) (function template) http://cppreference.com 2022.07.31 std::get_time(3)
NAME | Synopsis | Parameters | Other | Return value | Notes | Example | Possible output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::get_time&sektion=3&manpath=FreeBSD+Ports+15.0>
