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 |