FreeBSD Manual Pages
std::strftime(3) C++ Standard Libary std::strftime(3) NAME std::strftime - std::strftime Synopsis Defined in header <ctime> std::size_t strftime( char* str, std::size_t count, const char* for- mat, const std::tm* time ); Converts the date and time information from a given calendar time time to a null-terminated multibyte character string str according to format string format. Up to count bytes are written. Parameters str - pointer to the first element of the char array for output count - maximum number of bytes to write format - pointer to a null-terminated multibyte character string specifying the format of conversion time - pointer to the date and time information to be converted Format string The format string consists of zero or more conversion specifiers and ordinary characters (except %). All ordinary characters, including the termi- nating null character, are copied to the output string without modification. 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 following format specifiers are available: Conversion Explanation Used fields specifier % writes literal %. The full conversion specification must be %%. n writes newline character (C++11) t writes horizontal tab character (C++11) Year Y writes year as a decimal number, e.g. 2017 tm_year EY writes year in the alternative representation, (C++11) e.g.23 (year Heisei 23) instead of 2011 tm_year (year 2011) in ja_JP locale y writes last 2 digits of year as a decimal number (range tm_year [00,99]) Oy writes last 2 digits of year using the alternative (C++11) numeric system, e.g. instead of 11 in ja_JP tm_year locale Ey writes year as offset from locale's alternative tm_year (C++11) calendar period %EC (locale-dependent) C writes first 2 digits of year as a decimal number tm_year (C++11) (range [00,99]) EC writes name of the base year (period) in the locale's (C++11) alternative representation, e.g. (Heisei era) in tm_year ja_JP writes ISO 8601 week-based year, i.e. the year that contains the specified week. G In IS0 8601 weeks begin with Monday and the first week tm_year, tm_wday, (C++11) of the year must satisfy the following requirements: tm_yday * Includes January 4 * Includes first Thursday of the year writes last 2 digits of ISO 8601 week-based year, i.e. the year that contains the specified week (range [00,99]). g tm_year, tm_wday, (C++11) In IS0 8601 weeks begin with Monday and the first week tm_yday of the year must satisfy the following requirements: * Includes January 4 * Includes first Thursday of the year Month b writes abbreviated month name, e.g. Oct (locale tm_mon dependent) h synonym of b tm_mon (C++11) B writes full month name, e.g. October (locale dependent) tm_mon m writes month as a decimal number (range [01,12]) tm_mon Om writes month using the alternative numeric system, e.g. tm_mon (C++11) instead of 12 in ja_JP locale Week U writes week of the year as a decimal number (Sunday is tm_year, tm_wday, the first day of the week) (range [00,53]) tm_yday OU writes week of the year, as by %U, using the tm_year, tm_wday, (C++11) alternative numeric system, e.g. instead of tm_yday 52 in ja_JP locale W writes week of the year as a decimal number (Monday is tm_year, tm_wday, the first day of the week) (range [00,53]) tm_yday OW writes week of the year, as by %W, using the tm_year, tm_wday, (C++11) alternative numeric system, e.g. instead of tm_yday 52 in ja_JP locale writes ISO 8601 week of the year (range [01,53]). V In IS0 8601 weeks begin with Monday and the first week tm_year, tm_wday, (C++11) of the year must satisfy the following requirements: tm_yday * Includes January 4 * Includes first Thursday of the year OV writes week of the year, as by %V, using the tm_year, tm_wday, (C++11) alternative numeric system, e.g. instead of tm_yday 52 in ja_JP locale Day of the year/month j writes day of the year as a decimal number (range tm_yday [001,366]) d writes day of the month as a decimal number (range tm_mday [01,31]) writes zero-based day of the month using the Od alternative numeric system, e.g instead of 27 (C++11) in ja_JP locale tm_mday Single character is preceded by a space. writes day of the month as a decimal number (range e [1,31]). tm_mday (C++11) Single digit is preceded by a space. writes one-based day of the month using the alternative Oe numeric system, e.g. instead of 27 in ja_JP (C++11) locale tm_mday Single character is preceded by a space. Day of the week a writes abbreviated weekday name, e.g. Fri (locale tm_wday dependent) A writes full weekday name, e.g. Friday (locale tm_wday dependent) w writes weekday as a decimal number, where Sunday is 0 tm_wday (range [0-6]) Ow writes weekday, where Sunday is 0, using the (C++11) alternative numeric system, e.g. instead of 2 in tm_wday ja_JP locale u writes weekday as a decimal number, where Monday is 1 tm_wday (C++11) (ISO 8601 format) (range [1-7]) Ou writes weekday, where Monday is 1, using the (C++11) alternative numeric system, e.g. instead of 2 in tm_wday ja_JP locale Hour, minute, second H writes hour as a decimal number, 24 hour clock (range tm_hour [00-23]) OH writes hour from 24-hour clock using the alternative (C++11) numeric system, e.g. instead of 18 in ja_JP tm_hour locale I writes hour as a decimal number, 12 hour clock (range tm_hour [01,12]) OI writes hour from 12-hour clock using the alternative tm_hour (C++11) numeric system, e.g. instead of 06 in ja_JP locale M writes minute as a decimal number (range [00,59]) tm_min OM writes minute using the alternative numeric system, tm_min (C++11) e.g. instead of 25 in ja_JP locale S writes second as a decimal number (range [00,60]) tm_sec OS writes second using the alternative numeric system, tm_sec (C++11) e.g. instead of 24 in ja_JP locale Other c writes standard date and time string, e.g. Sun Oct 17 all 04:41:13 2010 (locale dependent) Ec writes alternative date and time string, e.g. using (C++11) 23 (year Heisei 23) instead of 2011 (year all 2011) in ja_JP locale x writes localized date representation (locale dependent) all Ex writes alternative date representation, e.g. using (C++11) 23 (year Heisei 23) instead of 2011 (year all 2011) in ja_JP locale X writes localized time representation, e.g. 18:40:20 or all 6:40:20 PM (locale dependent) EX writes alternative time representation (locale all (C++11) dependent) D equivalent to "%m/%d/%y" tm_mon, tm_mday, (C++11) tm_year F equivalent to "%Y-%m-%d" (the ISO 8601 date format) tm_mon, tm_mday, (C++11) tm_year r writes localized 12-hour clock time (locale dependent) tm_hour, tm_min, (C++11) tm_sec R equivalent to "%H:%M" tm_hour, tm_min (C++11) T equivalent to "%H:%M:%S" (the ISO 8601 time format) tm_hour, tm_min, (C++11) tm_sec p writes localized a.m. or p.m. (locale dependent) tm_hour z writes offset from UTC in the ISO 8601 format (e.g. (C++11) -0430), or no characters if the time zone information tm_isdst is not available writes locale-dependent time zone name or abbreviation, Z or no characters if the time zone information is not tm_isdst available Return value The number of bytes written into the character array pointed to by str not including the terminating '\0' on success. If count was reached before the en- tire string could be stored, 0 is returned and the contents are undefined. Example // Run this code #include <ctime> #include <iostream> #include <locale> int main() { std::time_t t = std::time(nullptr); char mbstr[100]; if (std::strftime(mbstr, sizeof(mbstr), "%A %c", std::local- time(&t))) { std::cout << mbstr << '\n'; } std::locale::global(std::locale("ja_JP.utf8")); if (std::strftime(mbstr, sizeof(mbstr), "%A %c", std::local- time(&t))) { std::cout << mbstr << '\n'; } } Possible output: Tuesday Tue Sep 7 19:40:35 2021 20210907 194035 See also converts a std::tm object to a textual asctime representation (function) converts a std::time_t object to a textual ctime representation (function) converts a std::tm object to custom wide wcsftime string textual representation (function) put_time formats and outputs a date/time value (C++11) according to the specified format (function template) std::formatter<std::chrono::hh_mm_ss> specialization of std::format- ter that formats (C++20) a hh_mm_ss according to the provided format (class template specializa- tion) http://cppreference.com 2022.07.31 std::strftime(3)
NAME | Synopsis | Parameters | Other | Return value | Example | Possible output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::strftime&sektion=3&manpath=FreeBSD+Ports+15.0>
