На этом шаге мы перечислим некоторые параметры, используемые для форматирования даты и времени.
Фацеты time_get и time_put из категории time предоставляют средства разбора и форматирования времени и даты. Функции, выполняющие эти операции, работают с объектами типа tm, определяемого в заголовочном файле <ctime>. Объекты не передаются напрямую; в аргументах передаются указатели на них.
Оба фацета из категории time в значительной степени зависят от функции strftime() (также определяемой в заголовочном файле <ctime>). Преобразование объекта tm к текстовому представлению описывается строкой, содержащей спецификаторы формата. Краткая сводка спецификаторов приведена в таблице 1. Эти же спецификаторы используются фацетом time_put.
| Спецификатор | Смысл | Пример |
|---|---|---|
| %а | Сокращенное название дня недели | Mon |
| %А | Полное название дня недели | Monday |
| %b | Сокращенное название месяца | Jul |
| %В | Полное название месяца | July |
| %с | Представление даты и времени для текущего локального контекста | Jul 12 21:53:22 1998 |
| %d | День месяца | 12 |
| %Н | Час (по 24-часовой шкале) | 21 |
| %I | Час (по 12-часовой шкале) | 9 |
| %j | День года | 193 |
| %m | Порядковый номер месяца | 7 |
| %М | Минуты | 53 |
| %р | Обозначение половины суток (am или рm) | pm |
| %S | Секунды | 22 |
| %U | Номер недели, начиная с первого воскресенья | 28 |
| %W | Номер недели, начиная с первого понедельника | 28 |
| %w | Порядковый номер дня недели (воскресенье==0) | 0 |
| %х | Представление даты для текущего локального контекста | Jul 12 1998 |
| %Х | Представление времени для текущего локального контекста | 21:53:22 |
| %у | Год (без указания века) | 98 |
| %Y | Год (с указанием века) | 1998 |
| %Z | Часовой пояс | MEST |
| %% | Литерал % | % |
Конечно, точный вид строки, созданной функцией strftime(), зависит от текущего локального контекста. Примеры в таблице приведены для локального контекста "С".
На следующем шаге мы рассмотрим лексический разбор даты и времени.