## Выражения: Форматы вывода чисел

Числовые форматы используются в строках со вставками и в функции format.
Форматы задаются по правилам функции printf языка С. Числовой формат начинается со знака % и завершается одной из ключевых букв d, i, b, o, u, x, X, f, e, E, g, G. Между % и ключевой буквой могут быть указаны необязательные параметры:

- [flag] — комбинация флагов -, +, 0, пробел, #;
- [width] — минимальная длина выводимой строки в символах;
- [.prec] — число знаков после запятой при выводе вещественных чисел.

%[flag][width]d или i | целое число со знаком
%[flag][width]u | целое число без знака
%[width]b | двоичное целое число без знака
%[flag][width]o | восьмеричное целое число без знака
%[flag][width]x | шестнадцатеричное целое без знака, используются прописные буквы a, b, c, d, e, f
%[flag][width]X | шестнадцатеричное целое без знака, используются заглавные буквы A, B, C, D, E, F
%[flag][width][.prec]e %[flag][width][.prec]E | вещественное в экспоненциальной форме: 1.2e4, 3.1E-4
%[flag][width][.prec]f | вещественное с плавающей точкой: 12000.0, 0.00031
%[flag][width][.prec]g %[flag][width][.prec]G | кратчайшая из двух форм: e и f

## Выражения: Форматы дат и времени

Форматы дат и времени используются в строках со вставками и в функции format.

Форматы задаются по правилам функции strftime языка С. В отличие от числовых форматов любое количество форматов дат-времени можно объединить для вывода одного значения. Например, результатом выражения

    "Today [now() %#d %B %Y, %A, %H:%M:%S]."

будет строка вида

    Today 4 February 2000, Monday, 15:04:55

Необязательный аргумент [flag] может принимать только одно значение #. Для форматов %#c и %#x он выводит дату в более подробной форме. Для остальных форматов — удаляет лидирующие нули (4 вместо 04).

%[flag]c | стандартное представление даты и времени
%[flag]x | стандартное представление даты
%X | стандартное представление времени
%[flag]Y | четырёхзначный год (от 1970)
%[flag]y | последние две цифры года (от 00 до 99)
%B | полное название месяца
%b | сокращённое название месяца
%[flag]m | номер месяца (от 01 до 12)
%[flag]d | день месяца (от 01 до 31)
%[flag]H | часы (от 00 до 24)
%[flag]I | часы (от 00 до 12)
%p | индикатор до полудня / после полудня
%[flag]M | минуты (от 00 до 59)
%[flag]S | секунды (от 00 до 59)
%a | сокращённое название дня недели
%A | полное название дня недели
%[flag]w | порядковый номер дня недели (0=воскресенье, 1=понедельник, ..., 6=суббота.)
%[flag]j | порядковый номер дня в году (от 001 до 366)
%[flag]U | порядковый номер недели в году (от 00 до 51) если неделя начинается с воскресенья
%[flag]W | порядковый номер недели в году (от 00 до 51) если неделя начинается с понедельника
%z %Z | полное и сокращённое название часового пояса

Форматы даты-времени b, d, x, X конфликтуют с одноимёнными числовыми форматами. Если одна из этих букв оказалась последней в формате даты-времени, то после неё следует поставить букву T:

    "Today [now() %#xT]."