Юрій Чорноіван
yurchor@ukr.net 2020

# Коди форматування дати і часу

Нижче наведено резюме щодо стандартних кодів дати і часу, якими можна скористатися у рядках форматування:

# Коректні коди форматування для нетипових підтек

%a | Скорочення дня тижня відповідно до поточної локалі.
%A | Повна назва дня тижня відповідно до поточної локалі.
%b | Скорочення назви місяця відповідно до поточної локалі.
%B | Повна назва місяця відповідно до поточної локалі.
%c | Бажане представлення дати і часу для поточної локалі.
%C | Номер сторіччя (рік/100) у двоцифровому форматі.
%d | День місяця у форматі десяткового числа (від 01 до 31).
%D | Еквівалент %m/%d/%y. (так — лише для американської англійської. Американцям слід зауважити, що в інших країнах поширеним є формат запису %d/%m/%y. Це означає, що у міжнародному контексті цей формат не є однозначним — ним не слід користуватися.)
%e | Подібний до %d, день місяця у десятковому форматі, але початковий нуль замінюється пробілом.
%E | Модифікатор: використовувати альтернативний формат, див. нижче.
%F | Еквівалент %Y-%m-%d (формат дати ISO 8601). (C99)
%G | Рік у форматі ISO 8601 із сторіччям у форматі десяткового числа. Чотирицифровий рік, що відповідає номеру тижня ISO (див. %V). Має той самий формат та значення, що і %y, за винятком випадків, коли номер тижня ISO належить попередньому або наступному року; тоді використовується цей рік.
%g | Подібний до %G, але без сторіччя, тобто із двоцифровим роком (00-99).
%h | Еквівалент %b.
%H | Години у форматі десяткового числа з використанням 24-годинного запису (діапазон від 00 до 23).
%I | Години у форматі десяткового числа з використанням 12-годинного запису (діапазон від 01 до 12).
%j | День року у форматі десяткового числа (від 001 до 366).
%k | Години (у 24-годинному форматі) як десяткове число (у діапазоні від 0 до 23); одноцифрові значення доповнюються пробілами. (див. також %H.)
%l | Години (у 12-годинному форматі) як десяткове число (у діапазоні від 1 до 12); одноцифрові значення доповнюються пробілами. (див. також %H.)
%m | Місяць у десятковому форматі (діапазон від 01 до 12).
%M | Хвилини у форматі десяткового числа (діапазон від 00 до 59).
%O | Модифікатор: використовувати альтернативний формат, див. нижче.
%p | «AM» або «PM» відповідно до вказаного значення часу або відповідні рядки для поточної локалі. Південь вважається «pm», а північ — «am».
%P | Подібне до %p, але літерами нижнього регістру: «am» або «pm», або відповідний рядок для поточної локалі.
%r | Час у позначеннях з a.m. або p.m.. У локалі POSIX це еквівалент «%I:%M:%S %p».
%R | Час у 24-годинній формі запису (%H:%M). Якщо потрібна версія із секундами, див. %T нижче.
%s | Кількість секунд від початку епохи, тобто від 1970-01-01 00:00:00 UTC.
%S | Секунди у форматі десяткового числа (діапазон від 00 до 60). (Діапазон до 60, щоб уможливити додавання секунд, яке іноді виконується для вирівнювання часу.)
%T | Час у 24-годинній формі запису (%H:%M:%S).
%u | День тижня у форматі десяткового числа у діапазоні від 1 до 7, понеділок — 1. Див. також %w.
%U | Номер тижня поточного року у форматі десяткового числа у діапазоні від 00 до 53, починаючи з першої неділі як першого дня тижня 01. Див. також %V і %W.
%V | Номер тижня поточного року за стандартом ISO 8601:1988 у форматі десяткового числа у діапазоні від 01 до 53, де тиждень 1 є першим тижнем, у якому принаймні 4 поточного року, а першим днем цього тижня є понеділок. Див. також %U і %W.
%w | День тижня у форматі десяткового числа, у діапазоні від 0 до 6, неділя — 0. Див. також %u.
%W | Номер тижня поточного року у форматі десяткового числа у діапазоні від 00 до 53, починаючи з першого понеділка як першого дня тижня 01.
%x | Бажане представлення дати для поточної локалі без часу.
%X | Бажане представлення часу для поточної локалі без дати.
%y | Рік у форматі десяткового числа без сторіччя (у діапазоні від 00 до 99).
%Y | Рік у форматі десяткового числа разом із сторіччям.
%z | Часовий пояс у форматі зсуву за годинами від часу за Гринвічем. Потрібен для створення сумісних із RFC 822 записів дат (з використанням «%a, %d %b %Y %H:%M:%S %z»).
%Z | Часовий пояс, назва або абревіатура

Деякі специфікації перетворення можна змінити дописуванням до символу-специфікатора перетворення модифікатора E або O для позначення використання альтернативного формату. Якщо альтернативного формату або специфікації для поточної локалі не існує, поведінка буде такою самою, якою була б, якби було використано немодифіковану специфікацію перетворення. У «Єдиній специфікації Unix» згадано %Ec, %EC, %Ex, %EX, %Ey, %EY, %Od, %Oe, %OH, %OI, %Om, %OM, %OS, %Ou, %OU, %OV, %Ow, %OW, %Oy, де використання модифікатора O спричиняє використання альтернативних числових символів (наприклад, римських чисел), а використання модифікатора E — до залежного від локалі альтернативного представлення.