Токени формату дати
Є дві широко використовувані сімейства рядків формату дати й вони перекриваються досить, щоб бути небезпечними. strftime — із C і успадкований Python, Ruby, PHP й GNU date — використовує токени відсотків на кшталт %Y. Unicode LDML, що використовується ICU, Java, moment і dayjs, використовує повторювані літери на кшталт yyyy. У LDML MM — місяць, mm — хвилина; перевернути цю пару навпаки — класична помилка.
Кожен рядок нижче рендерується для одного й того ж моменту часу: понеділок 9 березня 2026 року, 14:05:07 UTC. Ця дата вибирається так, щоб нічого не сховалось — одноцифровий день й місяць виявляють нульове доповнення, денна година робить 12- й 24-годинні часи видимо різними, а день тижня недвозначний.
Порожня еквівалентна колонка означає, що інший діалект не має єдиного токена для нього й вам доводиться самому складати значення. Набір тестів рендерує поля календаря із власними функціями дати платформи й порівнює їх до цієї таблиці, тож приклади не можуть дрейфувати від реальності.
Рік
4| strftime | LDML | Поле | Рендерується як |
|---|---|---|---|
| %Y | yyyy | Чотирьохзначний рік | 2026 |
| %y | yy | Двозначний рікНеоднозначний за конструкцією. Уникайте його у все, що зберігається. | 26 |
| %C | Століття — рік поділений на 100 | 20 | |
| %G | YYYY | Рік нумерації тижня ISOВідрізняється від календарного року приблизно Новий рік. Використовуйте лише з номером тижня ISO. | 2026 |
Місяць
4У LDML MM — місяць, а mm — хвилина.
| strftime | LDML | Поле | Рендерується як |
|---|---|---|---|
| %m | MM | Місяць, нульовий доповнений | 03 |
| %-m | M | Місяць, без доповнення | 3 |
| %b | MMM | Скорочене ім'я місяця | Mar |
| %B | MMMM | Повне ім'я місяця | March |
День й день тижня
8У LDML dd — день місяця й DDD — день року.
| strftime | LDML | Поле | Рендерується як |
|---|---|---|---|
| %d | dd | День місяця, нульовий доповнений | 09 |
| %-d | d | День місяця, без доповнення | 9 |
| %e | День місяця, пробіл-доповнений | 9 | |
| %j | DDD | День року, 001–366 | 068 |
| %a | EEE | Скорочене ім'я дня тижня | Mon |
| %A | EEEE | Повне ім'я дня тижня | Monday |
| %u | День тижня як число, понеділок — 1%w нумерує ті самі дні від неділі як 0. | 1 | |
| %V | ww | Номер тижня ISO, тижні, що починаються з понеділка | 11 |
Час
8| strftime | LDML | Поле | Рендерується як |
|---|---|---|---|
| %H | HH | Година на 24-годинному годиннику | 14 |
| %-H | H | Година, без доповнення | 14 |
| %I | hh | Година на 12-годинному годиннику | 02 |
| %M | mm | Хвилина | 05 |
| %S | ss | Секунда | 07 |
| %3N | SSS | Мілісекунди | 000 |
| %p | a | AM або PM | PM |
| %s | Marca часу Unix — секунди з 1970-01-01 UTC | 1773065107 |
Часовий пояс
3Зміщення — число; назва зони — правило. Лише назва виживає зміну DST.
| strftime | LDML | Поле | Рендерується як |
|---|---|---|---|
| %z | ZZ | Зміщення UTC, без двокрапки | +0000 |
| %:z | XXX | Зміщення UTC з двокрапкою, як ISO 8601 потребує | +00:00 |
| %Z | zzz | Абревіатура часового поясуАбревіатури не унікальні — CST — щонайменше три різні зони. | UTC |
Загальні комбінації
7Вибудовані із токенів вище — без бібліотеки не потрібно.
| strftime | LDML | Поле | Рендерується як |
|---|---|---|---|
| %F | yyyy-MM-dd | ISO дата | 2026-03-09 |
| %T | HH:mm:ss | 24-годинний час | 14:05:07 |
| %FT%T%:z | yyyy-MM-dd'T'HH:mm:ssXXX | Повна позначка часу ISO 8601Формат для зберігання. Сортується як текст, однозначне щодо зміщення. | 2026-03-09T14:05:07+00:00 |
| %a, %d %b %Y %T %z | EEE, dd MMM yyyy HH:mm:ss ZZ | RFC 2822 — заголовки електронної пошти й старіший HTTP | Mon, 09 Mar 2026 14:05:07 +0000 |
| %m/%d/%Y | MM/dd/yyyy | Угода США, місяць спочатку | 03/09/2026 |
| %d.%m.%Y | dd.MM.yyyy | Угода європейців, день спочатку | 09.03.2026 |
| %% | '' | Літеральний знак відсотка | % |