Форматирование: различия между версиями
Sidminik (обсуждение | вклад) |
Sidminik (обсуждение | вклад) |
||
| (не показано 16 промежуточных версий этого же участника) | |||
| Строка 10: | Строка 10: | ||
Заменяет каждый элемент формата в указанной строке <code>format</code> значением соответствующего параметра в массиве <code>args</code>. | Заменяет каждый элемент формата в указанной строке <code>format</code> значением соответствующего параметра в массиве <code>args</code>. | ||
Например, следующий вызов функции: | '''Например''', следующий вызов функции: | ||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
Format("Name = {0}, hours = {1:hh}", myName, DateTime.Now) | Format("Name = {0}, hours = {1:hh}", myName, DateTime.Now) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
содержит элементы формата <code>{0}</code> и <code>{1:hh}</code>. Они заменяются значениями <code>myName</code> и <code>DateTime.Now</code>. Результат может выглядеть так: | содержит элементы формата <code>{0}</code> и <code>{1:hh}</code>. Они заменяются значениями <code>myName</code> и <code>DateTime.Now</code>. | ||
'''Результат''' может выглядеть так: | |||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
Name = Alex, hours = 12 | Name = Alex, hours = 12 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Элемент формата имеет следующий синтаксис: | '''Элемент формата''' имеет следующий синтаксис: | ||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
{index[,alignment][:formatString]} | {index[,alignment][:formatString]} | ||
| Строка 35: | Строка 37: | ||
{|class="wikitable" style="background-color: #fff;" | {|class="wikitable" style="background-color: #fff;" | ||
|- | |- | ||
! Символ | ! style="width: 80px;" | Символ | ||
! Тип | |||
! Описание | |||
! style="width: 300px;" | Пример | |||
|- | |- | ||
| C или c | | '''<code>C</code>''' или '''<code>c</code>''' | ||
| Валюта | |||
| Число преобразуется в строку, представляющую денежные единицы. | |||
| <code>Format("{0:C}", 10) = "10,00 ₽"</code> | |||
|- | |- | ||
| D или d | | '''<code>D</code>''' или '''<code>d</code>''' | ||
| Десятичное число | |||
| Этот формат доступен только для целых типов. Число преобразуется в строку, состоящую из десятичных цифр (0-9). | |||
| <code>Format("{0:D}", 10) = "10"</code> | |||
|- | |- | ||
| E или e | | '''<code>E</code>''' или '''<code>e</code>''' | ||
| Научный | |||
| Число преобразуется в строку вида <code>-d.ddd…E+ddd</code> или <code>-d.ddd…e+ddd</code>, где знак <code>d</code> представляет цифру (0-9). | |||
| <code>Format("{0:E}", 10) = "1,000000E+001"</code> | |||
|- | |- | ||
| F или f | | '''<code>F</code>''' или '''<code>f</code>''' | ||
| Фиксированная запятая | |||
| Число преобразуется в строку вида <code>-ddd.ddd…</code>, где знак <code>d</code> представляет цифру (0-9). | |||
| <code>Format("{0:F}", 10) = "10,00"</code> | |||
|- | |- | ||
| G или g | | '''<code>G</code>''' или '''<code>g</code>''' | ||
| Общий | |||
| Число преобразуется в наиболее короткую запись. | |||
| <code>Format("{0:G}", 10) = "10"</code> | |||
|- | |- | ||
| N или n | | '''<code>N</code>''' или '''<code>n</code>''' | ||
| Число | |||
| Число преобразуется в строку вида <code>-d,ddd,ddd.ddd…</code>, где знак <code>d</code> — цифра (0-9), знак <code>,</code> — разделитель тысяч, а знак <code>.</code> — разделитель целой и дробной части. | |||
| <code>Format("{0:N}", 1234.56) = "1 234,56"</code> | |||
|- | |- | ||
| P или p | | '''<code>P</code>''' или '''<code>p</code>''' | ||
| Процент | |||
| Число преобразуется в строку, представляющую проценты. Преобразуемое число умножается на 100, чтобы соответствовать процентам. | |||
| <code>Format("{0:P}", 0.15) = "15,00%"</code> | |||
|- | |- | ||
| X или x | | '''<code>X</code>''' или '''<code>x</code>''' | ||
| Шестнадцатеричный | |||
| Этот формат доступен только для целых типов. Число преобразуется в строку шестнадцатеричных знаков. Регистр шестнадцатеричных знаков, превосходящих 9, совпадает с регистром указателя формата. | |||
| <code>Format("{0:X}", 26) = "1A"</code> | |||
|} | |} | ||
| Строка 72: | Строка 101: | ||
{|class="wikitable" style="background-color: #fff;" | {|class="wikitable" style="background-color: #fff;" | ||
|- | |- | ||
! Символ !! Описание | ! Символ | ||
! Назначение | |||
! Описание | |||
|- | |- | ||
| 0 | | '''<code>0</code>''' | ||
| Знак-заменитель нуля | |||
| Если форматируемое значение содержит цифру в этой позиции, она копируется в выходную строку. | |||
В противном случае 0 отображается в выходной строке. | |||
|- | |- | ||
| # | | '''<code>#</code>''' | ||
| Заместитель цифры | |||
| Если форматируемое значение содержит цифру в этой позиции, она копируется в выходную строку. | |||
В противном случае в выходной строке ничего не записывается. | |||
|- | |- | ||
| . | | '''<code>.</code>''' | ||
| Разделитель дроби | |||
|Первый знак <code>.</code> в строке формата определяет положение разделителя дроби. | |||
|- | |- | ||
| , | | '''<code>,</code>''' | ||
| Разделитель числовых разрядов | |||
| Знак <code>,</code> в строке формата определяет положение разделителя групп разрядов. | |||
|- | |- | ||
| % | | '''<code>%</code>''' | ||
| Заместитель процентов | |||
| При использовании знака <code>%</code> в строке форматирования число будет умножено на 100, и в соответствующую позицию в выходной строке будет вставлен символ <code>%</code>. | |||
|- | |- | ||
| ; | | '''<code>;</code>''' | ||
| Разделитель секций | |||
| Знак <code>;</code> служит для разделения секций положительных, отрицательных и нулевых чисел в строке формата. | |||
|} | |} | ||
| Строка 102: | Строка 147: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===Форматирование даты/времени=== | ===Форматирование даты/времени (стандартное)=== | ||
Для форматирования даты/времени используются следующие стандартные символы-спецификаторы: | Для форматирования даты/времени используются следующие стандартные символы-спецификаторы: | ||
| Строка 110: | Строка 155: | ||
|- | |- | ||
| d || Короткий шаблон даты || | | '''<code>d</code>''' || Короткий шаблон даты || <code>02.04.2024</code> | ||
|- | |- | ||
| D || Полный шаблон даты || | | '''<code>D</code>''' || Полный шаблон даты || <code>2 апреля 2024 г.</code> | ||
|- | |- | ||
| f || Полный шаблон даты и времени (короткий шаблон времени) || | | '''<code>f</code>''' || Полный шаблон даты и времени (короткий шаблон времени) || <code>2 апреля 2024 г. 20:41</code> | ||
|- | |- | ||
| F || Полный шаблон даты и времени (полный шаблон времени) || | | '''<code>F</code>''' || Полный шаблон даты и времени (полный шаблон времени) || <code>2 апреля 2024 г. 20:41:33</code> | ||
|- | |- | ||
| g || Общий шаблон даты и времени (короткий шаблон времени) || | | '''<code>g</code>''' || Общий шаблон даты и времени (короткий шаблон времени) || <code>02.04.2024 20:41</code> | ||
|- | |- | ||
| G || Общий шаблон даты и времени (полный шаблон времени) || | | '''<code>G</code>''' || Общий шаблон даты и времени (полный шаблон времени) || <code>02.04.2024 20:41:33</code> | ||
|- | |- | ||
| t || Короткий шаблон времени || | | '''<code>t</code>''' || Короткий шаблон времени || <code>20:41</code> | ||
|- | |- | ||
| T || Полный шаблон времени || | | '''<code>T</code>''' || Полный шаблон времени || <code>20:41:33</code> | ||
|} | |} | ||
===Форматирование даты/времени (настраиваемое)=== | |||
Так же можно использовать символы настраиваемого формата даты/времени: | Так же можно использовать символы настраиваемого формата даты/времени: | ||
| Строка 141: | Строка 187: | ||
|- | |- | ||
|'''<code>d</code>''' | |'''<code>d</code>''' | ||
|Представляет день месяца в виде числа от 1 до 31. Одноразрядные числа форматируются без нуля в начале. | |Представляет день месяца в виде числа от <code>1</code> до <code>31</code>. Одноразрядные числа форматируются без нуля в начале. | ||
|- | |- | ||
|'''<code>dd</code>''' | |'''<code>dd</code>''' | ||
|Представляет день месяца в виде числа от 01 до 31. | |Представляет день месяца в виде числа от <code>01</code> до <code>31</code>. | ||
|- | |- | ||
|'''<code>ddd</code>''' | |'''<code>ddd</code>''' | ||
| Строка 156: | Строка 202: | ||
|- | |- | ||
|'''<code>h</code>''' | |'''<code>h</code>''' | ||
|Представляет часы числом от 1 до 12. Одноразрядные числа форматируются без нуля в начале. | |Представляет часы числом от <code>1</code> до <code>12</code>. Одноразрядные числа форматируются без нуля в начале. | ||
|- | |- | ||
|'''<code>hh</code>''' | |'''<code>hh</code>''' | ||
|Представляет часы числом от 01 до 12. | |Представляет часы числом от <code>01</code> до <code>12</code>. | ||
|- | |- | ||
|'''<code>H</code>''' | |'''<code>H</code>''' | ||
|Представляет часы числом от 0 до 23. Одноразрядные числа форматируются без нуля в начале. | |Представляет часы числом от <code>0</code> до <code>23</code>. Одноразрядные числа форматируются без нуля в начале. | ||
|- | |- | ||
|'''<code>HH</code>''' | |'''<code>HH</code>''' | ||
|Представляет часы числом от 00 до 23. | |Представляет часы числом от <code>00</code> до <code>23</code>. | ||
|- | |- | ||
|'''<code>m</code>''' | |'''<code>m</code>''' | ||
|Представляет минуты как число от 0 до 59. Одноразрядные числа форматируются без нуля в начале. | |Представляет минуты как число от <code>0</code> до <code>59</code>. Одноразрядные числа форматируются без нуля в начале. | ||
|- | |- | ||
|'''<code>mm</code>''' | |'''<code>mm</code>''' | ||
|Представляет минуты как число от 00 до 59. | |Представляет минуты как число от <code>00</code> до <code>59</code>. | ||
|- | |- | ||
|'''<code>M</code>''' | |'''<code>M</code>''' | ||
|Представляет месяц как число от 1 до 12. Одноразрядные числа форматируются без нуля в начале. | |Представляет месяц как число от <code>1</code> до <code>12</code>. Одноразрядные числа форматируются без нуля в начале. | ||
|- | |- | ||
|'''<code>MM</code>''' | |'''<code>MM</code>''' | ||
|Представляет месяц как число от 01 до 12. | |Представляет месяц как число от <code>01</code> до <code>12</code>. | ||
|- | |- | ||
|'''<code>MMM</code>''' | |'''<code>MMM</code>''' | ||
| Строка 186: | Строка 232: | ||
|- | |- | ||
|'''<code>s</code>''' | |'''<code>s</code>''' | ||
|Представляет секунды как число от 0 до 59. Одноразрядные числа форматируются без нуля в начале. | |Представляет секунды как число от <code>0</code> до <code>59</code>. Одноразрядные числа форматируются без нуля в начале. | ||
|- | |- | ||
|'''<code>ss</code>''' | |'''<code>ss</code>''' | ||
|Представляет секунды как число от 00 до 59. | |Представляет секунды как число от <code>00</code> до <code>59</code>. | ||
|- | |- | ||
|'''<code>y</code>''' | |'''<code>y</code>''' | ||
| Строка 229: | Строка 275: | ||
|} | |} | ||
Форматирует значение <code>value</code> как валюту, используя региональные установки Windows. Если указан параметр <code>decimalDigits</code>, результат округляется до соответствующего количества знаков после запятой. | Форматирует значение <code>value</code> как валюту, используя региональные установки Windows. | ||
Если указан параметр <code>decimalDigits</code>, результат округляется до соответствующего количества знаков после запятой. | |||
'''Примеры:''' | '''Примеры:''' | ||
| Строка 249: | Строка 297: | ||
|} | |} | ||
Форматирует значение <code>value</code> как дату/время. Данная функция не возвращает дату или время, если соответствующие части имеют пустые значения | Форматирует значение <code>value</code> как дату/время. | ||
Данная функция не возвращает дату или время, если соответствующие части имеют пустые значения: | |||
*пустой датой считается <code>1/1/1</code>, | |||
*пустым временем считается <code>0:00:00</code>. | |||
При использовании именованного формата <code>format</code> допустимы следующие значения: | При использовании именованного формата <code>format</code> допустимы следующие значения: | ||
| Строка 280: | Строка 332: | ||
|} | |} | ||
Форматирует значение <code>value</code> как число, используя региональные установки Windows. Если указан параметр <code>decimalDigits</code>, результат округляется до соответствующего количества знаков после запятой. | Форматирует значение <code>value</code> как число, используя региональные установки Windows. | ||
Если указан параметр <code>decimalDigits</code>, результат округляется до соответствующего количества знаков после запятой. | |||
'''Примеры:''' | '''Примеры:''' | ||
| Строка 300: | Строка 354: | ||
|} | |} | ||
Форматирует значение <code>value</code> как процент, используя региональные установки Windows. Если указан параметр <code>decimalDigits</code>, результат округляется до соответствующего количества знаков после запятой. | Форматирует значение <code>value</code> как процент, используя региональные установки Windows. | ||
Если указан параметр <code>decimalDigits</code>, результат округляется до соответствующего количества знаков после запятой. | |||
'''Примеры:''' | '''Примеры:''' | ||
Текущая версия от 04:29, 19 октября 2026
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 |
Короткий шаблон даты | 02.04.2024
|
D |
Полный шаблон даты | 2 апреля 2024 г.
|
f |
Полный шаблон даты и времени (короткий шаблон времени) | 2 апреля 2024 г. 20:41
|
F |
Полный шаблон даты и времени (полный шаблон времени) | 2 апреля 2024 г. 20:41:33
|
g |
Общий шаблон даты и времени (короткий шаблон времени) | 02.04.2024 20:41
|
G |
Общий шаблон даты и времени (полный шаблон времени) | 02.04.2024 20:41:33
|
t |
Короткий шаблон времени | 20:41
|
T |
Полный шаблон времени | 20:41: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) = "2 апр 2024"
Format("{0:dd/MM/yyyy}", DateTime.Now) = "02.04.2024"
Format("{0:d MMMM}", DateTime.Now) = "2 апреля"
Format("{0:HH:mm}", DateTime.Now) = "20:41"
Format("{0:dd/MM/yyyy HH:mm}", DateTime.Now) = "02.04.2024 20:41"
FormatCurrency
| Функция | Параметры | Возвращаемое значение |
|---|---|---|
FormatCurrency |
object value |
string
|
FormatCurrency |
object value, int decimalDigits |
string
|
Форматирует значение value как валюту, используя региональные установки Windows.
Если указан параметр decimalDigits, результат округляется до соответствующего количества знаков после запятой.
Примеры:
FormatCurrency(1.25) = "1,25 ₽"
FormatCurrency(1.25, 1) = "1,3 ₽"
FormatDateTime
| Функция | Параметры | Возвращаемое значение |
|---|---|---|
FormatDateTime |
DateTime value |
string
|
FormatDateTime |
DateTime value, string format |
string
|
Форматирует значение value как дату/время.
Данная функция не возвращает дату или время, если соответствующие части имеют пустые значения:
- пустой датой считается
1/1/1, - пустым временем считается
0:00:00.
При использовании именованного формата format допустимы следующие значения:
- Long Date;
- Short Date;
- Long Time;
- Short Time.
Примеры:
FormatDateTime(new DateTime(2024,4,2)) = "02.04.2024"
FormatDateTime(new DateTime(2024,4,2,1,30,0)) = "02.04.2024 1:30:00"
FormatDateTime(new DateTime(1,1,1,1,30,1)) = "1:30:01"
FormatDateTime(new DateTime(2024,4,2,1,30,0), "Long Date") = "2 апреля 2024 г."
FormatDateTime(new DateTime(2024,4,2), "Short Date") = "02.04.2024"
FormatDateTime(new DateTime(1,1,1,1,30,1), "Long Time") = "1:30:01"
FormatDateTime(new DateTime(1,1,1,1,30,1), "Short Time") = "01:30"
FormatNumber
| Функция | Параметры | Возвращаемое значение |
|---|---|---|
FormatNumber |
object value |
string
|
FormatNumber |
object value, int decimalDigits |
string
|
Форматирует значение value как число, используя региональные установки Windows.
Если указан параметр decimalDigits, результат округляется до соответствующего количества знаков после запятой.
Примеры:
FormatNumber(1234.56) = "1 234,56"
FormatNumber(1234.56, 1) = "1 234,6"
FormatPercent
| Функция | Параметры | Возвращаемое значение |
|---|---|---|
FormatPercent |
object value |
string
|
FormatPercent |
object value, int decimalDigits |
string
|
Форматирует значение value как процент, используя региональные установки Windows.
Если указан параметр decimalDigits, результат округляется до соответствующего количества знаков после запятой.
Примеры:
FormatPercent(0.15) = "15,00%"
FormatPercent(0.15, 0) = "15%"