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 (C99)
|
writes newline character
|
|
t (C99)
|
writes horizontal tab character
|
|
Year
|
Y
|
writes year as a decimal number, e.g. 2017
|
tm_year
|
EY (C99)
|
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 (C99)
|
writes last 2 digits of year using the alternative numeric system, e.g. instead of 11 in ja_JP locale
|
tm_year
|
Ey (C99)
|
writes year as offset from locale's alternative calendar period %EC (locale-dependent)
|
tm_year
|
C (C99)
|
writes first 2 digits of year as a decimal number (range [00,99] )
|
tm_year
|
EC (C99)
|
writes name of the base year (period) in the locale's alternative representation, e.g. (Heisei era) in ja_JP
|
tm_year
|
G (C99)
|
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 (C99)
|
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 (C99)
|
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 (C99)
|
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 (C99)
|
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 (C99)
|
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 (C99)
|
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 (C99)
|
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 (C99)
|
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 (C99)
|
writes day of the month as a decimal number (range [1,31] ).
Single digit is preceded by a space.
|
tm_mday
|
Oe (C99)
|
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 (C99)
|
writes weekday, where Sunday is 0 , using the alternative numeric system, e.g. instead of 2 in ja_JP locale
|
tm_wday
|
u (C99)
|
writes weekday as a decimal number, where Monday is 1 (ISO 8601 format) (range [1-7] )
|
tm_wday
|
Ou (C99)
|
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 (C99)
|
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 (C99)
|
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 (C99)
|
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 (C99)
|
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 (C99)
|
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 (C99)
|
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 (C99)
|
writes alternative time representation (locale dependent)
|
all
|
D (C99)
|
equivalent to "%m/%d/%y"
|
tm_mon , tm_mday , tm_year
|
F (C99)
|
equivalent to "%Y-%m-%d" (the ISO 8601 date format)
|
tm_mon , tm_mday , tm_year
|
r (C99)
|
writes localized 12-hour clock time (locale dependent)
|
tm_hour , tm_min , tm_sec
|
R (C99)
|
equivalent to "%H:%M"
|
tm_hour , tm_min
|
T (C99)
|
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 (C99)
|
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 locale-dependent time zone name or abbreviation, or no characters if the time zone information is not available
|
tm_isdst
|