Описатель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Локальный часовой пояс или отсутствие символов, если сведения о часовом поясе недоступны
%%Простой %

Локаль (locale) является способом описания местной специфики, принимая во внимание такие вещи, как язык, кодировка символов и значения по умолчанию для форматирования дат, времени, денежных сумм и т.д. Мы будем иметь с ними дело в главе 13 «Интернационализация и локализация». Пока достаточно понять, что результаты 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().

Перейти на страницу:

Похожие книги