Форматирование
Format
Функция | Параметры | Возвращаемое значение |
---|---|---|
Format |
string format,``params object[] args |
string |
Заменяет каждый элемент формата в указанной строке format значением соответствующего параметра в массиве args.
Например, следующий вызов функции:
Format("Name = {0}, hours = {1:hh}", myName, DateTime.Now)
содержит элементы формата "{0}" и "{1:hh}". Они заменяются значениями myName и DateTime.Now. Результат может выглядеть так:
Name = Alex, hours = 12
Элемент формата имеет следующий синтаксис:
{index[,alignment][:formatString]}
где
- index - обязательный номер значения, которое будет подставлено в это место строки;
- alignment - необязательная ширина форматированного значения;
- formatString - необязательный спецификатор формата.
Для форматирования числовых значений используются следующие стандартные символы-спецификаторы:
Символ | Тип | Описание |
---|---|---|
C или c | Валюта | Число преобразуется в строку, представляющую денежные единицы. Format("{0:C}", 10) = "10,00р." |
D или d | Десятичное число | Этот формат доступен только для целых типов. Число преобразуется в строку, состоящую из десятичных цифр (0-9). Format("{0:D}", 10) = "10" |
E или e | Научный | Число преобразуется в строку вида "-d.ddd…E+ddd" или "-d.ddd…e+ddd", где знак "d" представляет цифру (0-9).Format("{0:E}", 10) = "1,000000E+001" |
F или f | Фиксированная запятая | Число преобразуется в строку вида "-ddd.ddd…", где знак "d" представляет цифру (0-9).Format("{0:F}", 10) = "10,00" |
G или g | Общий | Число преобразуется в наиболее короткую запись.Format("{0:G}", 10) = "10" |
N или n | Число | Число преобразуется в строку вида "-d,ddd,ddd.ddd…", где знак "d" - цифра (0-9), знак "," - разделитель тысяч, а знак "." - разделитель целой и дробной части.Format("{0:N}", 1234.56) = "1 234,56" |
P или p | Процент | Число преобразуется в строку, представляющую проценты. Преобразуемое число умножается на 100, чтобы соответствовать процентам. Format("{0:P}", 0.15) = "15,00%" |
X или x | Шестнадцате-ричный | Этот формат доступен только для целых типов. Число преобразуется в строку шестнадцатеричных знаков. Регистр шестнадцатеричных знаков, превосходящих 9, совпадает с регистром указателя формата.Format("{0:X}", 26) = "1A" |
После символа-спецификатора формата можно указать число. Для чисел с плавающей запятой это будет означать количество знаков после запятой в форматированном значении:
Format("{0:C1}", 12.23) = "12,2р."
Если стандартных средств форматирования чисел недостаточно, можно использовать символы настраиваемого числового формата:
Символ | Описание |
---|---|
0 | Знак-заменитель нуля. Если форматируемое значение содержит цифру в этой позиции, она копируется в выходную строку. В противном случае 0 отображается в выходной строке. |
# | Заместитель цифры. Если форматируемое значение содержит цифру в этой позиции, она копируется в выходную строку. В противном случае в выходной строке ничего не записывается. |
. | Разделитель дроби. Первый знак "." в строке формата определяет положение разделителя дроби. |
, | Разделитель числовых разрядов. Знак "," в строке формата определяет положение разделителя групп разрядов. |
% | Заместитель процентов. При использовании знака "%" в строке форматирования число будет умножено на 100, и в соответствующую позицию в выходной строке будет вставлен символ "%". |
; | Разделитель секций. Знак ";" служит для разделения секций положительных, отрицательных и нулевых чисел в строке формата. |
Примеры использования:
Format("{0:$#,##0.00}", 1024.25) = "$1 024,25"
Format("{0:00%}", 0.25) = "25%"
Format("{0:$#,##0.00;($#,##0.00);Zero}", 1024.25) = "$1 024,25"
Format("{0:$#,##0.00;($#,##0.00);Zero}", -1024.25) = "($1 024,25)"
Format("{0:$#,##0.00;($#,##0.00);Zero}", 0) = "Zero"
Для форматирования даты/времени используются следующие стандартные символы-спецификаторы:
Символ | Тип | Пример |
---|---|---|
d | Короткий шаблон даты | "03.08.2009" |
D | Полный шаблон даты | "3 августа 2009 г." |
f | Полный шаблон даты и времени (короткий шаблон времени) | "3 августа 2009 г. 20:13" |
F | Полный шаблон даты и времени (полный шаблон времени) | "3 августа 2009 г. 20:13:33" |
g | Общий шаблон даты и времени (короткий шаблон времени) | "03.08.2009 20:13" |
G | Общий шаблон даты и времени (полный шаблон времени) | "03.08.2009 20:13:33" |
t | Короткий шаблон времени | "20:13" |
T | Полный шаблон времени | "20:13:33" |
Так же можно использовать символы настраиваемого формата даты/времени:
Символ | Описание |
---|---|
d | Представляет день месяца в виде числа от 1 до 31. Одноразрядные числа форматируются без нуля в начале. |
dd | Представляет день месяца в виде числа от 01 до 31. |
ddd | Представляет сокращенное название дня недели. |
dddd | Представляет полное название дня недели. |
f или F | Представляет миллисекунды. |
h | Представляет часы числом от 1 до 12. Одноразрядные числа форматируются без нуля в начале. |
hh | Представляет часы числом от 01 до 12. |
H | Представляет часы числом от 0 до 23. Одноразрядные числа форматируются без нуля в начале. |
HH | Представляет часы числом от 00 до 23. |
m | Представляет минуты как число от 0 до 59. Одноразрядные числа форматируются без нуля в начале. |
mm | Представляет минуты как число от 00 до 59. |
M | Представляет месяц как число от 1 до 12. Одноразрядные числа форматируются без нуля в начале. |
MM | Представляет месяц как число от 01 до 12. |
MMM | Представляет сокращенное название месяца. |
MMMM | Представляет полное название месяца. |
s | Представляет секунды как число от 0 до 59. Одноразрядные числа форматируются без нуля в начале. |
ss | Представляет секунды как число от 00 до 59. |
y | Представляет год как число из одной или двух цифр. |
yy | Представляет год как число из двух цифр. |
yyyy | Представляет год как число из четырех цифр. |
: | Представляет стандартный разделитель времени. |
/ | Представляет стандартный разделитель даты. |
Примеры использования:
Format("{0:d MMM yyyy}", DateTime.Now) = "3 авг 2009"
Format("{0:dd/MM/yyyy}", DateTime.Now) = "03.08.2009"
Format("{0:d MMMM}", DateTime.Now) = "3 августа"
Format("{0:HH:mm}", DateTime.Now) = "23:32"
Format("{0:dd/MM/yyyy HH:mm}", DateTime.Now) = "03.08.2009 23:32"