Strings.Format(Object, String) Метод

Определение

Возвращает строку, отформатированную в соответствии с инструкциями, содержащимися в формате выражения String.

public static string Format (object? Expression, string? Style = "");
public static string Format (object Expression, string Style = "");
static member Format : obj * string -> string
Public Function Format (Expression As Object, Optional Style As String = "") As String

Параметры

Expression
Object

Обязательный. Любое допустимое выражение.

Style
String

Необязательный элемент. Правильно именованное или определенное пользователем выражение формата String.

Возвращаемое значение

Строка, отформатированная в соответствии с инструкциями, содержащимися в формате выражения String.

Примеры

В данном примере показаны различные способы использования функции Format для форматирования значений с применением как форматов String, так и определенных пользователем форматов. Фактическое отображение системой разделителя даты (/), разделителя времени (: и индикаторов AM/PM (t и tt) зависит от региональных параметров, применяемых кодом. При отображении времени и даты в среде разработки используется короткий формат времени и даты региональных установок кода.

Примечание

Для языков, использующих 24-часовой формат, индикаторы AM/PM (t и tt) не отображаются.

Dim testDateTime As Date = #1/27/2001 5:04:23 PM#
Dim testStr As String
' Returns current system time in the system-defined long time format.
testStr = Format(Now(), "Long Time")
' Returns current system date in the system-defined long date format.
testStr = Format(Now(), "Long Date")
' Also returns current system date in the system-defined long date 
' format, using the single letter code for the format.
testStr = Format(Now(), "D")

' Returns the value of testDateTime in user-defined date/time formats.
' Returns "5:4:23".
testStr = Format(testDateTime, "h:m:s")
' Returns "05:04:23 PM".
testStr = Format(testDateTime, "hh:mm:ss tt")
' Returns "Saturday, Jan 27 2001".
testStr = Format(testDateTime, "dddd, MMM d yyyy")
' Returns "17:04:23".
testStr = Format(testDateTime, "HH:mm:ss")
' Returns "23".
testStr = Format(23)

' User-defined numeric formats.
' Returns "5,459.40".
testStr = Format(5459.4, "##,##0.00")
' Returns "334.90".
testStr = Format(334.9, "###0.00")
' Returns "500.00%".
testStr = Format(5, "0.00%")

Комментарии

Метод String.Format также предоставляет аналогичные функции.

При форматировании нелокализованной числовой строки следует использовать определяемый пользователем числовый формат, чтобы обеспечить нужный внешний вид.

Если попытаться отформатировать число без указания Style, Format функция предоставляет функциональные возможности, аналогичные функции функции, несмотря на Str то, что она учитывается на международном уровне. Однако положительные числа, отформатированные в виде строк с помощью Format функции, не включают в себя пробел в начале, зарезервированный для знака значения; те, которые преобразованы с помощью Str функции, сохраняют начальное пространство.

Различные форматы для различных числовых значений

Пользовательское выражение формата для чисел может содержать от одного до трех разделов, разделенных точкой с запятой. Style Если аргумент Format функции содержит один из предопределенных числовых форматов, допускается только один раздел.

При использовании Результат:
Только один раздел Формат распространяется на все значения.
Две секции Первый раздел применяется к положительным и нулевым значениям; второй — к отрицательным значениям.
Три секции Первый раздел применяется к положительным значениям, второй применяется к отрицательным значениям, а третий — к нулю.

Следующий пример состоит из двух разделов: первый определяет формат для положительных значений и нулей; во втором разделе определяется формат для отрицательных значений. Style Так как аргумент Format функции принимает строку, он заключен в кавычки.

Dim style1 As String = "$#,##0;($#,##0)"

Если вы добавите символы точки с запятой, между которыми ничего нет, то отсутствующий раздел будет распечатан с использованием формата положительного значения. Например, в следующем формате отображаются положительные и отрицательные значения с использованием формата в первом разделе и отображается, Zero если значение равно нулю.

Dim style2 As String = "$#,##0;;\Z\e\r\o"

Предопределенные числовые форматы

В следующей таблице указаны предопределенные имена числовых форматов. Их можно использовать по имени в качестве аргумента StyleFormat для функции:

Название формата Описание
General Number, Gили g Отображает число без разделителя тысяч.

Например, Format(&H3FA, "g") возвращает 1018.
Currency, Cили c Отображает число с разделителем "тысяч", если это необходимо; отображает две цифры справа от десятичного разделителя. Вывод основан на параметрах локали системы.

Например, Format(1234567, "c") возвращает $1,234,567.00.
Fixed, Fили f Отображает не менее одной цифры слева и две цифры справа от десятичного разделителя.

Например, Format(1234567, "f") возвращает 1234567.00.
Standard, Nили n Отображает число с разделителем тысяч, по крайней мере одна цифра слева и две цифры справа от десятичного разделителя.

Например, Format(1234567, "n") возвращает 1,234,567.00.
Percent Отображает число, умноженное на 100, со знаком процента (%), добавленным справа. Всегда отображает две цифры справа от десятичного разделителя.

Например, Format(0.4744, "Percent") возвращает 47.44%.
P или p Отображает умноженное на 100 число с разделителями групп разрядов со знаком процента (%) через пробел справа, всегда отображает две цифры справа от десятичного разделителя.

Например, Format(0.80345, "p") возвращает 80.35 %.
Scientific Использует стандартное научное представление, предоставляя две значащие цифры.

Например, Format(1234567, "Scientific") возвращает 1.23E+06.
E или e Использует стандартное научное обозначение с шестью значащими разрядами.

Например, Format(1234567, "e") возвращает 1.234567e+006.
D или d Отображает число в виде строки, содержащей значение числа в десятичном формате (основание 10). Этот параметр поддерживается только для целочисленных типов (Byte, Short, Integer, Long) .

Например, Format(&H7F, "d") возвращает 127.
X или x Отображает число в виде строки, содержащей значение числа в шестнадцатеричном формате (основание 16). Этот параметр поддерживается только для целочисленных типов (Byte, Short, Integer, Long) .

Например, Format(127, "x") возвращает 7f.
Yes/No Отображается No , если число равно 0; в противном случае отображается значение Yes.

Например, Format(0, "Yes/No") возвращает No.
True/False Отображается False , если число равно 0; в противном случае отображается значение True.

Например, Format(1, "True/False") возвращает True.
On/Off Отображается Off , если число равно 0; в противном случае отображается значение On.

Например, Format(1, "On/Off") возвращает On.

Заметки для разработчиков интеллектуальных устройств

Форматы Yes/No, True/Falseи On/Off не поддерживаются.

User-Defined числовые форматы

В следующей таблице указаны символы, которые можно использовать для создания пользовательских числовых форматов. Их можно использовать для построения аргумента StyleFormat для функции:

Знак Описание
None Отображает число без форматирования.
(0) Заполнитель цифр. Отображает цифру или ноль. Если выражение имеет цифру в позиции, где нуль отображается в строке формата, отобразите ее; В противном случае отображает ноль в этой позиции.

Если число имеет меньше цифр, чем нулей (по обе стороны от десятичного разделителя) в выражении формата, отобразятся нули в начале или конце. Если число имеет больше цифр справа от десятичного разделителя, чем нулей справа от десятичного разделителя в выражении формата, число округляется до количества знаков после запятой, равного количеству нулей. Если число имеет больше цифр слева от десятичного разделителя, чем нулей слева от десятичного разделителя в выражении формата, дополнительные цифры выводятся без изменений.
(#) Заполнитель цифр. Отображает цифру или ничего. Если выражение имеет цифру в позиции # , в которой символ отображается в строке формата, отображается; в противном случае ничего не отображается в этой позиции.

Этот символ работает как 0 заполнитель цифр, за исключением того, что начальные и конечные нули не отображаются, если число содержит меньше цифр, чем # символов на обеих сторонах десятичного разделителя в выражении формата.
(.) Заполнитель десятичных чисел. Десятичный заполнитель определяет, сколько цифр отображается слева и справа от десятичного разделителя. Если выражение формата содержит только # символы слева от этого символа, числа меньше 1 начинаются с десятичного разделителя. Чтобы в начале дробных чисел отобразить ноль, используйте ноль в качестве заполнителя первой цифры слева от десятичного разделителя. В некоторых языковых стандартах в качестве десятичного разделителя используется запятая. Фактический символ, используемый в качестве десятичного заполнителя в форматированных выходных данных, зависит от числового формата, распознаваемого системой. Таким образом, следует использовать точку в качестве десятичного заполнителя в форматах, даже если вы используете языковой стандарт, в котором в качестве десятичного заполнителя используется запятая. Отформатированная строка будет отображаться в формате, соответствующем языковому стандарту.
(%) Заполнитель процентов. Умножает выражение на 100. Символ процента (%) вставляется в позицию, где он отображается в строке форматирования.
(,) Разделитель групп разрядов. Разделитель групп разрядов отделяет тысячи от сотен в числе, состоящем из четырех или более знаков слева от десятичного разделителя. Стандартное использование разделителя разрядов указывается, если формат содержит разделитель разрядов, окруженный заполнителями цифр (0 или #).

Разделитель разрядов непосредственно слева от десятичного разделителя (независимо от того, указан ли десятичный разделитель) или в качестве крайнего правого символа в строке означает "масштабировать число, разделяя его на 1000, округляя по мере необходимости". Числа меньше 1000, но больше или равны 500 отображаются как 1, а числа меньше 500 — как 0. Два смежных разделителя групп разрядов в этой ячейке масштабируются с коэффициентом 1 000 000 и дополнительным фактором 1 000 для каждого дополнительного разделителя.

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

Например, рассмотрим три строки формата ниже:

- "#,0.", который использует разделитель разрядов для форматирования числа 100 миллионов в виде строки "100 000 000".
- "#0,.", в котором используется масштабирование в раз в одну тысячу для форматирования числа 100 миллионов в виде строки "100000".
- "#,0,.", который использует разделитель разрядов и масштабирование на одну тысячу для форматирования числа 100 миллионов в виде строки "100 000".
(:) Разделитель времени. В некоторых языковых стандартах для представления разделителя времени могут использоваться другие символы. Разделитель времени разделяет часы, минуты и секунды при форматировании значений времени. Фактический символ, используемый в качестве разделителя времени в форматированных выходных данных, определяется установленными параметрами системы.
(/) Разделитель даты. В некоторых языковых стандартах для представления разделителя даты могут использоваться другие символы. Разделитель даты разделяет день, месяц и год при форматировании значений времени. Фактический символ, используемый в качестве разделителя даты в форматированных выходных данных, определяется установленными параметрами системы.
(E-``E+``e-``e+) Экспоненциальный формат. Если выражение формата содержит по крайней мере один заполнитель цифры (0 или #) слева от E-, E+, e-или e+, число отображается в научном формате и E или e вставляется между числом и его экспонентой. Число заполнителей цифр слева определяет количество цифр в показателе степени. Используйте E- или e- для размещения знака "минус" рядом с отрицательными экспонентами. Используйте E+ или e+ , чтобы поместить знак "минус" рядом с отрицательными экспонентами и знак "плюс" рядом с положительными экспонентами. Чтобы получить правильное форматирование, необходимо также включить заполнители цифр справа от этого символа.
-+$ ( ) Литеральные символы. Эти символы отображаются в точности так, как они введены в строке формата. Чтобы отобразить символ, который отличается от указанного в списке, поставьте перед ним обратную косую черту (\) или заключите его в двойные кавычки (" ").
(\) Следующий символ в строке формата. Чтобы отобразить символ, который имеет специальное значение в виде литерального символа, поставьте перед ним обратную косую черту (\). Сама по себе обратная косая черта не отображается. Использование обратной косой черты аналогично заключению выводимого символа в двойные кавычки. Чтобы отобразить обратную косую черту, используйте две обратные косые черты (\\).

Примерами символов, которые нельзя отобразить в виде литеральных символов, являются символы форматирования даты и времени (a, /tqnpdwsycmhи :), символы форматирования чисел (#, , 0%, E, , e, и точка) и символы форматирования строк (@, &, <, >и ).!
("``ABC``") Отображает строку, заключенную в двойные кавычки (" "). Чтобы включить строку в аргумент стиля из кода, необходимо использовать для Chr(34) заключения текста (34 — код символа для кавычки (")).

Старый пример кода

В следующей таблице приведены некоторые примеры выражений форматирования для чисел. (Во всех этих примерах предполагается, что языковой стандарт вашей системы — английский-США) Первый столбец содержит строки формата для Style аргумента Format функции; другие столбцы содержат результирующий результат, если форматированные данные имеют значение, заданное в заголовках столбцов.

Формат (Style) "5" форматируется как "–5" форматируется как "0,5" форматируется как
Zero-length string ("") 5 -5 0.5
0 5 -5 1
0.00 5.00 -5.00 0.50
#,##0 5 -5 1
$#,##0;($#,##0) $5 ($5) $1
$#,##0.00;($#,##0.00) $5.00 ($5.00) $0.50
0% 500% -500% 50%
0.00% 500.00% -500.00% 50.00%
0.00E+00 5.00E+00 -5.00E+00 5.00E-01
0.00E-00 5.00E00 -5.00E00 5.00E-01

Предопределенные форматы даты и времени

В следующей таблице приведены имена предварительно определенных форматов даты и времени. Они могут использоваться по имени в качестве аргумента стиля для Format функции:

Название формата Описание
General Date или G Отображает дату и/или время. Например, 3/12/2008 11:07:31 AM. Отображение даты определяется текущим значением языка и региональных параметров приложения.
Long Date, Medium Dateили D Отображает дату в соответствии с длинным форматом даты текущего языка и региональных параметров. Например, Wednesday, March 12, 2008.
Short Date или d Отображает дату в соответствии с коротким форматом даты текущего языка и региональных параметров. Например, 3/12/2008.

Символ d отображает день в пользовательском формате даты.
Long Time, Medium Timeили T Отображает время с использованием длинного формата времени текущего языка и региональных параметров; обычно включает часы, минуты, секунды. Например, 11:07:31 AM.
Short Time или t Отображает время в соответствии с кратким форматом времени в текущей культуре. Например, 11:07 AM.

Символ t отображает AM или PM значения для языковых стандартов, использующих 12-часовые часы в пользовательском формате времени.
f Отображает дату в соответствии с полным форматом и время в соответствии с кратким форматом в текущей культуре. Например, Wednesday, March 12, 2008 11:07 AM.
F Отображает дату в соответствии с полным форматом и время в соответствии с полным форматом в текущей культуре. Например, Wednesday, March 12, 2008 11:07:31 AM.
g Отображает дату в соответствии с кратким форматом и время в соответствии с кратким форматом в текущей культуре. Например, 3/12/2008 11:07 AM.
M, m Отображает месяц и день для даты. Например, March 12.

Символ M отображает месяц в пользовательском формате даты. Символ m отображает минуты в пользовательском формате времени.
R, r Форматирует дату в соответствии со свойством RFC1123Pattern . Например, Wed, 12 Mar 2008 11:07:31 GMT. При форматировании даты не изменяется значение даты и времени. Перед вызовом Format функции необходимо настроить значение даты и времени на GMT.
s Форматирует дату и время в виде сортируемого индекса. Например, 2008-03-12T11:07:31.

Символ s отображает секунды в пользовательском формате времени.
u Форматирует дату и время в виде сортируемого индекса GMT. Например, 2008-03-12 11:07:31Z.
U Форматирует дату и время в стандарте GMT, используя полный формат даты и полный формат времени. Например, Wednesday, March 12, 2008 6:07:31 PM.
Y, y Форматирует дату в виде года и месяца. Например, March, 2008.

Символы Y и y отображают год в пользовательском формате даты.

Дополнительные сведения о текущем языке и региональных параметрах приложения см. в статье Как язык и региональные параметры влияют на строки в Visual Basic.

форматы даты и времени User-Defined

В следующей таблице указаны символы, которые можно использовать для создания пользовательских форматов даты/времени. В отличие от более ранних версий Visual Basic, в этих символах форматирования учитывается регистр.

Знак Описание
(:) Разделитель времени. В некоторых языковых стандартах для представления разделителя времени могут использоваться другие символы. Разделитель времени разделяет часы, минуты и секунды при форматировании значений времени. Фактический символ, используемый в качестве разделителя времени в форматированных выходных данных, определяется текущими региональными настройками приложения.
(/) Разделитель даты. В некоторых языковых стандартах для представления разделителя даты могут использоваться другие символы. Разделитель даты разделяет день, месяц и год при форматировании значений времени. Фактический символ, используемый в качестве разделителя даты в форматированных выходных данных, определяется текущими региональными настройками приложения.
(%) Используется для обозначения того, что следующий символ должен считаться однобуквенным форматом без учета конечных букв. Также используется для указания того, что однобуквенный формат читается как пользовательский формат. Дополнительные сведения см. далее.
d Отображает день в виде числа без нуля в начале (например, 1). Используйте, %d если это единственный символ в пользовательском числовом формате.
dd Отображает день в виде числа с нулем в начале (например, 01).
ddd Отображает день в виде сокращения (например, Sun).
dddd Отображает день в виде полного имени (например, Sunday).
M Отображает месяц в виде числа без нуля в начале (например, январь представлен как 1). Используйте, %M если это единственный символ в пользовательском числовом формате.
MM Отображает месяц в виде числа с нулем в начале (например, 01/12/01).
MMM Отображает месяц в виде сокращения (например, Jan).
MMMM Отображает месяц в виде полного названия месяца (например, January).
gg Отображает строку периода или эры (например, A.D.).
h Отображает час в виде числа без начальных нулей с помощью 12-часовых часов (например, 1:15:15 PM). Используйте, %h если это единственный символ в пользовательском числовом формате.
hh Отображает час в виде числа с начальными нулями с использованием 12-часовых часов (например, 01:15:15 PM).
H Отображает час в виде числа без начальных нулей с помощью 24-часовых часов (например, 1:15:15). Используйте, %H если это единственный символ в пользовательском числовом формате.
HH Отображает час в виде числа с нулями в начале с помощью 24-часовых часов (например, 01:15:15).
m Отображает минуту в виде числа без начальных нулей (например, 12:1:15). Используйте, %m если это единственный символ в пользовательском числовом формате.
mm Отображает минуту в виде числа с нулем в начале (например, 12:01:15).
s Отображает секунду в виде числа без начальных нулей (например, 12:15:5). Используйте, %s если это единственный символ в пользовательском числовом формате.
ss Второй отображается в виде числа с нулем в начале (например, 12:15:05).
f Выводит доли секунды. Например ff , отображает сотые секунды ffff , тогда как отображает десять тысячных секунд. В пользовательском формате можно использовать до семи f символов. Используйте, %f если это единственный символ в пользовательском числовом формате.
t Использует 12-часовые часы и отображает прописные A буквы за любой час до полудня; отображает прописные P в течение любого часа между полуднем и 23:59. Используйте, %t если это единственный символ в пользовательском числовом формате.
tt Для языковых стандартов, использующих 12-часовые часы, отображает верхний регистр AM с любым часом до полудня; отображает верхний регистр PM с любым часом между полуднем и 23:59.

В локалях, использующих 24-часовой формат времени, не выводит ничего.
y Отображает номер года (0–9) без нулей в начале. Используйте, %y если это единственный символ в пользовательском числовом формате.
yy Отображает год в числовом формате из двух цифр с нулем в начале, если применимо.
yyy Отображает год в числовом формате из четырех цифр.
yyyy Отображает год в числовом формате из четырех цифр.
z Отображает смещение часового пояса без нуля в начале (например, -8). Используйте, %z если это единственный символ в пользовательском числовом формате.
zz Отображает смещение часового пояса с нулем в начале (например, -08).
zzz Отображает полное смещение часового пояса (например, -08:00)

Старый пример кода

Ниже приведены примеры пользовательских форматов даты и времени для December 7, 1958, 8:50 PM, 35 seconds:

Формат Отображение
M/d/yy 12/7/58
d-MMM 7-Dec
d-MMMM-yy 7-December-58
d MMMM 7 December
MMMM yy December 58
hh:mm tt 08:50 PM
h:mm:ss t 8:50:35 P
H:mm 20:50
H:mm:ss 20:50:35
M/d/yyyy H:mm 12/7/1958 20:50

Заметки для разработчиков интеллектуальных устройств

Минимальное разрешение времени для устройства определяется производителем устройства. Если разрешение времени для устройства достаточно грубое, f символ формата возвращает 0 при выполнении на этом устройстве.

Применяется к

См. также раздел