CLDR yy
Two-digit year.
06
at the reference instant, Mon, Jan 2 2006, 3:04:05 PM MST
The year modulo 100, zero-padded (06). Ambiguous by design — parsers disagree on which century a two-digit year lands in, so prefer the four-digit form anywhere data survives longer than a receipt.
| Language | Token | Caveat |
|---|---|---|
| C / POSIX strftime | %y | |
| C# custom format | yy | A single y gives the unpadded 0–99 year; yyy and up pad to that many digits. |
| CLDR / ICU pattern | yy | Exactly the two low-order digits; the only y-count with special meaning. |
| Go time layout | 06 | |
| Java DateTimeFormatter | uu | yy is the year-of-era equivalent; two letters also drive a 2000-pivot when parsing. |
| JavaScript Intl.DateTimeFormat | year: "2-digit" | |
| Moment.js format | YY | |
| PHP date() | y | |
| Python strftime | %y | |
| Ruby strftime | %y | |
| Rust chrono | %y | Floor division: 100 BCE (year -99) prints 99, with %C giving -1. |
Definition anchored to Unicode UTS #35 — Date Field Symbol Table.