Описатель | C99 | Значение |
---|---|---|
%a | Локальное сокращенное название дня недели. | |
%A | Локальное полное название дня недели. | |
%b | Локальное сокращенное название месяца. | |
%B | Локальное полное название месяца. | |
%c, %Ec | Локальное «подходящее» представление даты и времени | |
%C, %EC | √ | Век (00–99) |
%d, %Od | День месяца (01–31) | |
%D | √ | То же, что %m/%d/%y |
%e, %Oe | √ | День месяца. Одна цифра дополняется пробелом (1–31). |
%F | √ | То же, что и %Y-%m-%d (формат даты ISO 8601) |
%g | √ | Две последние цифры, основанной на неделе года (00–99). |
%G | √ | Основанный на неделе год ISO 8601 |
%h | √ | То же, что и %b |
%H, %OH | Час в 24-часовом цикле (00–23) | |
%I, %OI | Час в 12-часовом цикле (01–12) | |
%j | День года (001–366) | |
%m, %Om | Месяц в виде числа (01–12). | |
%M, %OM | Минута в виде числа (00–59) | |
%n | √ | Символ конца строки ('\n ') |
%p | Локальное обозначение a.m./p.m. | |
%r | √ | Локальное время в 12-часовом цикле |
%R | √ | Тоже, что и %H:%M |
%S, %OS | Секунда в виде числа (00–60) | |
%t | √ | Символ табуляции ('\t ') |
%T | √ | То же, что и %H:%M:%S (формат ISO 8601). |
%u, %Ou | √ | Число дня недели ISO 8601, понедельник = 1 (1–7). |
%U, %OU | Номер недели, первое воскресенье является первым днем недели 1 (00–53) | |
%V, %OV | √ | Номер недели ISO 8601 (01–53) |
%w, %Ow | День недели как число, воскресенье = 0 (0–6). | |
%W, %OW | Номер недели, первый понедельник является первым днем недели 1 (00–53) | |
%x, %Ex | Локальное «подходящее» представление даты | |
%X, %EX | Локальное «подходящее» представление времени. | |
%y, %Ey, %Oy | Две последние цифры года (00–99) | |
%Y, %EY | Год как число. | |
%Z | Локальный часовой пояс или отсутствие символов, если сведения о часовом поясе недоступны | |
%% | Простой % |
strftime()
для одной и той же форматирующей строки могут быть разными в зависимости от настроек текущей локали.
Версии, начинающиеся с %E
и %O
, предназначены для «альтернативного представления». В некоторых локалях есть несколько способов представления одних и тех же сведений; эти описатели предоставляют доступ к дополнительным представлениям. Если определенная локаль не поддерживает альтернативного представления, strftime()
использует обычную версию.
Многие Unix-версии date
дают возможность предоставить в командной строке форматирующую строку, начинающуюся с символа '+
'. Затем date
форматирует текущие дату и время и выводит в соответствии с форматирующей строкой:
$ date + 'It is now %A, %B %d, %Y, %I:%M %p'
It is now Sunday, May 25, 2003, 06:44 PM
Большинство новых описателей C99 происходит от таких существующих реализаций date
Unix. Описатели %n
и %t
не являются в С абсолютно необходимыми, поскольку символы табуляции и конца строки могут быть помещены в строку непосредственно. Однако в контексте форматирующей строки date
для командной строки они имеют больше смысла. Поэтому они также включены в спецификацию strftime()
.