The format string consists of zero or more conversion specifiers, 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 whitespace 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 specifier | Explanation | Writes to fields |
% | matches a literal % . The full conversion specification must be %% . | (none) |
t | matches any whitespace. | (none) |
n | matches any whitespace. | (none) |
Year |
Y | parses full year as a 4 digit decimal number, leading zeroes permitted but not required | tm_year |
EY | parses year in the alternative representation, e.g.平成23年 (year Heisei 23) which writes 2011 to tm_year in ja_JP locale | tm_year |
y | parses last 2 digits of year as a decimal number. Range [69,99] results in values 1969 to 1999, range [00,68] results in 2000-2068 | tm_year |
Oy | parses last 2 digits of year using the alternative numeric system, e.g. 十一 is parsed as 11 in ja_JP locale | tm_year |
Ey | parses year as offset from locale's alternative calendar period %EC | tm_year |
C | parses the first 2 digits of year as a decimal number (range [00,99] ) | tm_year |
EC | parses the name of the base year (period) in the locale's alternative representation, e.g. 平成 (Heisei era) in ja_JP | tm_year |
Month |
b | parses the month name, either full or abbreviated, e.g. Oct | tm_mon |
h | synonym of b | tm_mon |
B | synonym of b | tm_mon |
m | parses the month as a decimal number (range [01,12] ), leading zeroes permitted but not required | tm_mon |
Om | parses the month using the alternative numeric system, e.g. 十二 parses as 12 in ja_JP locale | tm_mon |
Week |
U | parses the week of the year as a decimal number (Sunday is the first day of the week) (range [00,53] ), leading zeroes permitted but not required | tm_year , tm_wday , tm_yday |
OU | parses the week of the year, as by %U , using the alternative numeric system, e.g. 五十二 parses as 52 in ja_JP locale | tm_year , tm_wday , tm_yday |
W | parses the week of the year as a decimal number (Monday is the first day of the week) (range [00,53] ), leading zeroes permitted but not required | tm_year , tm_wday , tm_yday |
OW | parses the week of the year, as by %W , using the alternative numeric system, e.g. 五十二 parses as 52 in ja_JP locale | tm_year , tm_wday , tm_yday |
Day of the year/month |
j | parses day of the year as a decimal number (range [001,366] ), leading zeroes permitted but not required | tm_yday |
d | parses the day of the month as a decimal number (range [01,31] ), leading zeroes permitted but not required | tm_mday |
Od | parses the day of the month using the alternative numeric system, e.g 二十七 parses as 27 in ja_JP locale, leading zeroes permitted but not required | tm_mday |
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 full or abbreviated, e.g. Fri | tm_wday |
A | synonym of a | tm_wday |
w | parses weekday as a decimal number, where Sunday is 0 (range [0-6] ) | tm_wday |
Ow | parses weekday as a decimal number, where Sunday is 0 , using the alternative numeric system, e.g. 二 parses as 2 in ja_JP locale | tm_wday |
Hour, minute, second |
H | parses the hour as a decimal number, 24 hour clock (range [00-23] ), leading zeroes permitted but not required | tm_hour |
OH | parses hour from 24-hour clock using the alternative numeric system, e.g. 十八 parses as 18 in ja_JP locale | tm_hour |
I | parses hour as a decimal number, 12 hour clock (range [01,12] ), leading zeroes permitted but not required | tm_hour |
OI | parses hour from 12-hour clock using the alternative numeric system, e.g. 六 reads as 06 in ja_JP locale | tm_hour |
M | parses minute as a decimal number (range [00,59] ), leading zeroes permitted but not required | tm_min |
OM | parses minute using the alternative numeric system, e.g. 二十五 parses as 25 in ja_JP locale | tm_min |
S | parses second as a decimal number (range [00,60] ), leading zeroes permitted but not required | tm_sec |
OS | parses second using the alternative numeric system, e.g. 二十四 parses as 24 in ja_JP locale | tm_sec |
Other |
c | parses the locale's standard date and time string format, e.g. Sun Oct 17 04:41:13 2010 (locale dependent) | all |
Ec | parses the locale's alternative date and time string format, e.g. expecting 平成23年 (year Heisei 23) instead of 2011年 (year 2011) in ja_JP locale | all |
x | parses the locale's standard date representation | all |
Ex | parses the locale's alternative date representation, e.g. expecting 平成23年 (year Heisei 23) instead of 2011年 (year 2011) in ja_JP locale | all |
X | parses the locale's standard time representation | all |
EX | parses the locale's alternative time representation | all |
D | equivalent to "%m / %d / %y " | tm_mon , tm_mday , tm_year |
r | parses locale's standard 12-hour clock time (in POSIX, "%I : %M : %S %p") | tm_hour , tm_min , 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 |