The format string consists of zero or more conversion specifiers and ordinary characters (except %). All ordinary characters, including the terminating 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  specifier
 | 
 Explanation
 | 
 Used fields
 | 
 %
 | 
 writes literal %. The full conversion specification must be %%.
 | 
 | 
 n (C++11)
 | 
 writes newline character
 | 
 | 
 t (C++11)
 | 
 writes horizontal tab character
 | 
 | 
|  Year
 | 
 Y
 | 
 writes year as a 4 digit decimal number
 | 
 tm_year
 | 
 EY (C++11)
 | 
 writes year in the alternative representation, e.g.平成23年 (year Heisei 23) instead of 2011年 (year 2011) in ja_JP locale
 | 
 tm_year
 | 
 y
 | 
 writes last 2 digits of year as a decimal number (range [00,99])
 | 
 tm_year
 | 
 Oy (C++11)
 | 
 writes last 2 digits of year using the alternative numeric system, e.g. 十一 instead of 11 in ja_JP locale
 | 
 tm_year
 | 
 Ey (C++11)
 | 
 writes year as offset from locale's alternative calendar period %EC (locale-dependent)
 | 
 tm_year
 | 
 C (C++11)
 | 
 writes first 2 digits of year as a decimal number (range [00,99])
 | 
 tm_year
 | 
 EC (C++11)
 | 
 writes name of the base year (period) in the locale's alternative representation, e.g. 平成 (Heisei era) in ja_JP
 | 
 tm_year
 | 
 G (C++11)
 | 
 writes ISO 8601 week-based year, i.e. the year that contains the specified week.
 In IS0 8601 weeks begin with Monday and the first week of the year must satisfy the following requirements:
 
-  Includes January 4
 -  Includes first Thursday of the year
  
 | 
 tm_year, tm_wday, tm_yday
 | 
 g (C++11)
 | 
 writes last 2 digits of ISO 8601 week-based year, i.e. the year that contains the specified week (range [00,99]).
In IS0 8601 weeks begin with Monday and the first week of the year must satisfy the following requirements:
 
-  Includes January 4
 -  Includes first Thursday of the year 
  
 | 
 tm_year, tm_wday, tm_yday
 | 
|  Month
 | 
 b
 | 
 writes abbreviated month name, e.g. Oct (locale dependent)
 | 
 tm_mon
 | 
 h (C++11)
 | 
 synonym of b
 | 
 tm_mon
 | 
 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 (C++11)
 | 
 writes month using the alternative numeric system, e.g. 十二 instead of 12 in ja_JP locale
 | 
 tm_mon
 | 
|  Week
 | 
 U
 | 
 writes week of the year as a decimal number (Sunday is the first day of the week) (range [00,53])
 | 
 tm_year, tm_wday, tm_yday
 | 
 OU (C++11)
 | 
 writes week of the year, as by %U, using the alternative numeric system, e.g. 五十二 instead of 52 in ja_JP locale
 | 
 tm_year, tm_wday, tm_yday
 | 
 W
 | 
 writes week of the year as a decimal number (Monday is the first day of the week) (range [00,53])
 | 
 tm_year, tm_wday, tm_yday
 | 
 OW (C++11)
 | 
 writes week of the year, as by %W, using the alternative numeric system, e.g. 五十二 instead of 52 in ja_JP locale
 | 
 tm_year, tm_wday, tm_yday
 | 
 V (C++11)
 | 
 writes ISO 8601 week of the year (range [01,53]).
In IS0 8601 weeks begin with Monday and the first week of the year must satisfy the following requirements:
 
-  Includes January 4
 -  Includes first Thursday of the year 
  
 | 
 tm_year, tm_wday, tm_yday
 | 
 OV (C++11)
 | 
 writes week of the year, as by %V, using the alternative numeric system, e.g. 五十二 instead of 52 in ja_JP locale
 | 
 tm_year, tm_wday, tm_yday
 | 
|  Day of the year/month
 | 
 j
 | 
 writes day of the year as a decimal number (range [001,366])
 | 
 tm_yday
 | 
 d
 | 
 writes day of the month as a decimal number (range [01,31])
 | 
 tm_mday
 | 
 Od (C++11)
 | 
 writes zero-based day of the month using the alternative numeric system, e.g 二十七 instead of 23 in ja_JP locale
 Single character is preceded by a space.
 
 | 
 tm_mday
 | 
 e (C++11)
 | 
 writes day of the month as a decimal number (range [1,31]).
Single digit is preceded by a space.
 
 | 
 tm_mday
 | 
 Oe (C++11)
 | 
 writes one-based day of the month using the alternative numeric system, e.g. 二十七 instead of 27 in ja_JP locale
 Single character is preceded by a space.
 
 | 
 tm_mday
 | 
|  Day of the week
 | 
 a
 | 
 writes abbreviated weekday name, e.g. Fri (locale dependent)
 | 
 tm_wday
 | 
 A
 | 
 writes full weekday name, e.g. Friday (locale dependent)
 | 
 tm_wday
 | 
 w
 | 
 writes weekday as a decimal number, where Sunday is 0 (range [0-6])
 | 
 tm_wday
 | 
 Ow (C++11)
 | 
 writes weekday, where Sunday is 0, using the alternative numeric system, e.g. 二 instead of 2 in ja_JP locale
 | 
 tm_wday
 | 
 u (C++11)
 | 
 writes weekday as a decimal number, where Monday is 1 (ISO 8601 format) (range [1-7])
 | 
 tm_wday
 | 
 Ou (C++11)
 | 
 writes weekday, where Monday is 1, using the alternative numeric system, e.g. 二 instead of 2 in ja_JP locale
 | 
 tm_wday
 | 
|  Hour, minute, second
 | 
 H
 | 
 writes hour as a decimal number, 24 hour clock (range [00-23])
 | 
 tm_hour
 | 
 OH (C++11)
 | 
 writes hour from 24-hour clock using the alternative numeric system, e.g. 十八 instead of 18 in ja_JP locale
 | 
 tm_hour
 | 
 I
 | 
 writes hour as a decimal number, 12 hour clock (range [01,12])
 | 
 tm_hour
 | 
 OI (C++11)
 | 
 writes hour from 12-hour clock using the alternative numeric system, e.g. 六 instead of 06 in ja_JP locale
 | 
 tm_hour
 | 
 M
 | 
 writes minute as a decimal number (range [00,59])
 | 
 tm_min
 | 
 OM (C++11)
 | 
 writes minute using the alternative numeric system, e.g. 二十五 instead of 25 in ja_JP locale
 | 
 tm_min
 | 
 S
 | 
 writes second as a decimal number (range [00,60])
 | 
 tm_sec
 | 
 OS (C++11)
 | 
 writes second using the alternative numeric system, e.g. 二十四 instead of 24 in ja_JP locale
 | 
 tm_sec
 | 
|  Other
 | 
 c
 | 
 writes standard date and time string, e.g. Sun Oct 17 04:41:13 2010 (locale dependent)
 | 
 all
 | 
 Ec (C++11)
 | 
 writes alternative date and time string, e.g. using 平成23年 (year Heisei 23) instead of 2011年 (year 2011) in ja_JP locale
 | 
 all
 | 
 x
 | 
 writes localized date representation (locale dependent)
 | 
 all
 | 
 Ex (C++11)
 | 
 writes alternative date representation, e.g. using 平成23年 (year Heisei 23) instead of 2011年 (year 2011) in ja_JP locale
 | 
 all
 | 
 X
 | 
 writes localized time representation (locale dependent)
 | 
 all
 | 
 EX (C++11)
 | 
 writes alternative time representation (locale dependent)
 | 
 all
 | 
 D (C++11)
 | 
 equivalent to "%m/%d/%y"
 | 
 tm_mon, tm_mday, tm_year
 | 
 F (C++11)
 | 
 equivalent to "%Y-%m-%d" (the ISO 8601 date format)
 | 
 tm_mon, tm_mday, tm_year
 | 
 r (C++11)
 | 
 writes localized 12-hour clock time (locale dependent)
 | 
 tm_hour, tm_min, tm_sec
 | 
 R (C++11)
 | 
 equivalent to "%H:%M"
 | 
 tm_hour, tm_min
 | 
 T (C++11)
 | 
 equivalent to "%H:%M:%S" (the ISO 8601 time format)
 | 
 tm_hour, tm_min, tm_sec
 | 
 p
 | 
 writes localized a.m. or p.m. (locale dependent)
 | 
 tm_hour
 | 
 z (C++11)
 | 
 writes offset from UTC in the ISO 8601 format (e.g. -0430), or no characters if the time zone information is not available
 | 
 tm_isdst
 | 
 Z
 | 
 writes time zone name or abbreviation, or no characters if the time zone information is not available (locale dependent)
 | 
 tm_isdst
 |