Strings.Format(Object, String) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Returns a string formatted according to instructions contained in a format String
expression.
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
Parameters
- Expression
- Object
Required. Any valid expression.
- Style
- String
Optional. A valid named or user-defined format String
expression.
Returns
A string formatted according to instructions contained in a format String
expression.
Examples
This example shows various uses of the Format
function to format values using both String
formats and user-defined formats. For the date separator (/
), time separator (:
), and the AM/PM indicators (t
and tt
), the actual formatted output displayed by your system depends on the locale settings the code is using. When times and dates are displayed in the development environment, the short time format and short date format of the code locale are used.
Note
For locales that use a 24-hour clock, the AM/PM indicators (t
and tt
) display nothing.
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%")
Remarks
The String.Format method also provides similar functionality.
If you are formatting a nonlocalized numeric string, you should use a user-defined numeric format to ensure that you get the look you want.
If you try to format a number without specifying Style
, the Format
function provides functionality similar to the Str
function, although it is internationally aware. However, positive numbers formatted as strings using the Format
function don't include a leading space reserved for the sign of the value; those converted using the Str
function retain the leading space.
Different Formats for Different Numeric Values
A user-defined format expression for numbers can have from one to three sections separated by semicolons. If the Style
argument of the Format
function contains one of the predefined numeric formats, only one section is allowed.
If you use | This is the result |
---|---|
One section only | The format expression applies to all values. |
Two sections | The first section applies to positive values and zeros; the second applies to negative values. |
Three sections | The first section applies to positive values, the second applies to negative values, and the third applies to zeros. |
The following example has two sections: the first defines the format for positive values and zeros; the second section defines the format for negative values. Since the Style
argument of the Format
function takes a string, it is enclosed by quotation marks.
Dim style1 As String = "$#,##0;($#,##0)"
If you include semicolons with nothing between them, the missing section is printed using the format of the positive value. For example, the following format displays positive and negative values using the format in the first section and displays Zero
if the value is zero.
Dim style2 As String = "$#,##0;;\Z\e\r\o"
Predefined Numeric Formats
The following table identifies the predefined numeric format names. These may be used by name as the Style
argument for the Format
function:
Format name | Description |
---|---|
General Number , G , or g |
Displays number with no thousand separator. For example, Format(&H3FA, "g") returns 1018 . |
Currency , C , or c |
Displays number with thousand separator, if appropriate; displays two digits to the right of the decimal separator. Output is based on system locale settings. For example, Format(1234567, "c") returns $1,234,567.00 . |
Fixed , F , or f |
Displays at least one digit to the left and two digits to the right of the decimal separator. For example, Format(1234567, "f") returns 1234567.00 . |
Standard , N , or n |
Displays number with thousand separator, at least one digit to the left and two digits to the right of the decimal separator. For example, Format(1234567, "n") returns 1,234,567.00 . |
Percent |
Displays number multiplied by 100 with a percent sign (%) appended immediately to the right; always displays two digits to the right of the decimal separator. For example, Format(0.4744, "Percent") returns 47.44% . |
P , or p |
Displays number with thousandths separator multiplied by 100 with a percent sign (%) appended to the right and separated by a single space; always displays two digits to the right of the decimal separator. For example, Format(0.80345, "p") returns 80.35 % . |
Scientific |
Uses standard scientific notation, providing two significant digits. For example, Format(1234567, "Scientific") returns 1.23E+06 . |
E , or e |
Uses standard scientific notation, providing six significant digits. For example, Format(1234567, "e") returns 1.234567e+006 . |
D , or d |
Displays number as a string that contains the value of the number in Decimal (base 10) format. This option is supported for integral types (Byte , Short , Integer , Long ) only.For example, Format(&H7F, "d") returns 127 . |
X , or x |
Displays number as a string that contains the value of the number in Hexadecimal (base 16) format. This option is supported for integral types (Byte , Short , Integer , Long ) only.For example, Format(127, "x") returns 7f . |
Yes/No |
Displays No if number is 0; otherwise, displays Yes .For example, Format(0, "Yes/No") returns No . |
True/False |
Displays False if number is 0; otherwise, displays True .For example, Format(1, "True/False") returns True . |
On/Off |
Displays Off if number is 0; otherwise, displays On .For example, Format(1, "On/Off") returns On . |
Smart Device Developer Notes
The Yes/No
, True/False
, and On/Off
formats are not supported.
User-Defined Numeric Formats
The following table identifies characters you can use to create user-defined number formats. These may be used to build the Style
argument for the Format
function:
Character | Description |
---|---|
None | Displays the number with no formatting. |
(0 ) |
Digit placeholder. Displays a digit or a zero. If the expression has a digit in the position where the zero appears in the format string, display it; otherwise, displays a zero in that position. If the number has fewer digits than there are zeros (on either side of the decimal) in the format expression, displays leading or trailing zeros. If the number has more digits to the right of the decimal separator than there are zeros to the right of the decimal separator in the format expression, rounds the number to as many decimal places as there are zeros. If the number has more digits to the left of the decimal separator than there are zeros to the left of the decimal separator in the format expression, displays the extra digits without modification. |
(# ) |
Digit placeholder. Displays a digit or nothing. If the expression has a digit in the position where the # character appears in the format string, displays it; otherwise, displays nothing in that position.This symbol works like the 0 digit placeholder, except that leading and trailing zeros aren't displayed if the number has fewer digits than there are # characters on either side of the decimal separator in the format expression. |
(. ) |
Decimal placeholder. The decimal placeholder determines how many digits are displayed to the left and right of the decimal separator. If the format expression contains only # characters to the left of this symbol; numbers smaller than 1 begin with a decimal separator. To display a leading zero displayed with fractional numbers, use zero as the first digit placeholder to the left of the decimal separator. In some locales, a comma is used as the decimal separator. The actual character used as a decimal placeholder in the formatted output depends on the number format recognized by your system. Thus, you should use the period as the decimal placeholder in your formats even if you are in a locale that uses a comma as a decimal placeholder. The formatted string will appear in the format correct for the locale. |
(% ) |
Percent placeholder. Multiplies the expression by 100. The percent character (% ) is inserted in the position where it appears in the format string. |
(, ) |
Thousand separator. The thousand separator separates thousands from hundreds within a number that has four or more places to the left of the decimal separator. Standard use of the thousand separator is specified if the format contains a thousand separator surrounded by digit placeholders (0 or # ).A thousand separator immediately to the left of the decimal separator (whether or not a decimal is specified) or as the rightmost character in the string means "scale the number by dividing it by 1,000, rounding as needed." Numbers smaller than 1,000 but greater or equal to 500 are displayed as 1 , and numbers smaller than 500 are displayed as 0 . Two adjacent thousand separators in this position scale by a factor of 1 million, and an additional factor of 1,000 for each additional separator.Multiple separators in any position other than immediately to the left of the decimal separator or the rightmost position in the string are treated simply as specifying the use of a thousand separator. In some locales, a period is used as a thousand separator. The actual character used as the thousand separator in the formatted output depends on the Number Format recognized by your system. Thus, you should use the comma as the thousand separator in your formats even if you are in a locale that uses a period as a thousand separator. The formatted string will appear in the format correct for the locale. For example, consider the three following format strings: - "#,0." , which uses the thousands separator to format the number 100 million as the string "100,000,000".- "#0,." , which uses scaling by a factor of one thousand to format the number 100 million as the string "100000".- "#,0,." , which uses the thousands separator and scaling by one thousand to format the number 100 million as the string "100,000". |
(: ) |
Time separator. In some locales, other characters may be used to represent the time separator. The time separator separates hours, minutes, and seconds when time values are formatted. The actual character used as the time separator in formatted output is determined by your system settings. |
(/ ) |
Date separator. In some locales, other characters may be used to represent the date separator. The date separator separates the day, month, and year when date values are formatted. The actual character used as the date separator in formatted output is determined by your system settings. |
(E-``E+``e-``e+ ) |
Scientific format. If the format expression contains at least one digit placeholder (0 or # ) to the left of E- , E+ , e- , or e+ , the number is displayed in scientific format and E or e is inserted between the number and its exponent. The number of digit placeholders to the left determines the number of digits in the exponent. Use E- or e- to place a minus sign next to negative exponents. Use E+ or e+ to place a minus sign next to negative exponents and a plus sign next to positive exponents. You must also include digit placeholders to the right of this symbol to get correct formatting. |
- + $ ( ) |
Literal characters. These characters are displayed exactly as typed in the format string. To display a character other than one of those listed, precede it with a backslash (\ ) or enclose it in double quotation marks (" "). |
(\ ) |
Displays the next character in the format string. To display a character that has special meaning as a literal character, precede it with a backslash (\ ). The backslash itself isn't displayed. Using a backslash is the same as enclosing the next character in double quotation marks. To display a backslash, use two backslashes (\\ ).Examples of characters that can't be displayed as literal characters are the date-formatting and time-formatting characters ( a , c , d , h , m , n , p , q , s , t , w , y , / , and : ), the numeric-formatting characters (# , 0 , % , E , e , comma, and period), and the string-formatting characters (@ , & , < , > , and ! ). |
("``ABC``" ) |
Displays the string inside the double quotation marks (" "). To include a string in the style argument from within code, you must use Chr(34) to enclose the text (34 is the character code for a quotation mark (")). |
Legacy Code Example
The following table contains some sample format expressions for numbers. (These examples all assume that your system's locale setting is English-U.S.) The first column contains the format strings for the Style
argument of the Format
function; the other columns contain the resulting output if the formatted data has the value given in the column headings.
Format (Style ) |
"5" formatted as | "-5" formatted as | "0.5" formatted as |
---|---|---|---|
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 |
Predefined Date/Time Formats
The following table identifies the predefined date and time format names. These may be used by name as the style argument for the Format
function:
Format Name | Description |
---|---|
General Date , or G |
Displays a date and/or time. For example, 3/12/2008 11:07:31 AM . Date display is determined by your application's current culture value. |
Long Date , Medium Date , or D |
Displays a date according to your current culture's long date format. For example, Wednesday, March 12, 2008 . |
Short Date , or d |
Displays a date using your current culture's short date format. For example, 3/12/2008 .The d character displays the day in a user-defined date format. |
Long Time , Medium Time , or T |
Displays a time using your current culture's long time format; typically includes hours, minutes, seconds. For example, 11:07:31 AM . |
Short Time or t |
Displays a time using your current culture's short time format. For example, 11:07 AM .The t character displays AM or PM values for locales that use a 12-hour clock in a user-defined time format. |
f |
Displays the long date and short time according to your current culture's format. For example, Wednesday, March 12, 2008 11:07 AM . |
F |
Displays the long date and long time according to your current culture's format. For example, Wednesday, March 12, 2008 11:07:31 AM . |
g |
Displays the short date and short time according to your current culture's format. For example, 3/12/2008 11:07 AM . |
M , m |
Displays the month and the day of a date. For example, March 12 .The M character displays the month in a user-defined date format. The m character displays the minutes in a user-defined time format. |
R , r |
Formats the date according to the RFC1123Pattern property. For example, Wed, 12 Mar 2008 11:07:31 GMT . The formatted date does not adjust the value of the date and time. You must adjust the Date/Time value to GMT before calling the Format function. |
s |
Formats the date and time as a sortable index. For example, 2008-03-12T11:07:31 .The s character displays the seconds in a user-defined time format. |
u |
Formats the date and time as a GMT sortable index. For example, 2008-03-12 11:07:31Z . |
U |
Formats the date and time with the long date and long time as GMT. For example, Wednesday, March 12, 2008 6:07:31 PM . |
Y , y |
Formats the date as the year and month. For example, March, 2008 .The Y and y characters display the year in a user-defined date format. |
For more information about the application's current culture information, see How Culture Affects Strings in Visual Basic.
User-Defined Date/Time Formats
The following table shows characters you can use to create user-defined date/time formats. Unlike in earlier versions of Visual Basic, these format characters are case-sensitive.
Character | Description |
---|---|
(: ) |
Time separator. In some locales, other characters may be used to represent the time separator. The time separator separates hours, minutes, and seconds when time values are formatted. The actual character that is used as the time separator in formatted output is determined by your application's current culture value. |
(/ ) |
Date separator. In some locales, other characters may be used to represent the date separator. The date separator separates the day, month, and year when date values are formatted. The actual character that is used as the date separator in formatted output is determined by your application's current culture. |
(% ) |
Used to indicate that the following character should be read as a single-letter format without regard to any trailing letters. Also used to indicate that a single-letter format is read as a user-defined format. See what follows for additional details. |
d |
Displays the day as a number without a leading zero (for example, 1 ). Use %d if this is the only character in your user-defined numeric format. |
dd |
Displays the day as a number with a leading zero (for example, 01 ). |
ddd |
Displays the day as an abbreviation (for example, Sun ). |
dddd |
Displays the day as a full name (for example, Sunday ). |
M |
Displays the month as a number without a leading zero (for example, January is represented as 1 ). Use %M if this is the only character in your user-defined numeric format. |
MM |
Displays the month as a number with a leading zero (for example, 01/12/01 ). |
MMM |
Displays the month as an abbreviation (for example, Jan ). |
MMMM |
Displays the month as a full month name (for example, January ). |
gg |
Displays the period/era string (for example, A.D. ). |
h |
Displays the hour as a number without leading zeros using the 12-hour clock (for example, 1:15:15 PM ). Use %h if this is the only character in your user-defined numeric format. |
hh |
Displays the hour as a number with leading zeros using the 12-hour clock (for example, 01:15:15 PM ). |
H |
Displays the hour as a number without leading zeros using the 24-hour clock (for example, 1:15:15 ). Use %H if this is the only character in your user-defined numeric format. |
HH |
Displays the hour as a number with leading zeros using the 24-hour clock (for example, 01:15:15 ). |
m |
Displays the minute as a number without leading zeros (for example, 12:1:15 ). Use %m if this is the only character in your user-defined numeric format. |
mm |
Displays the minute as a number with leading zeros (for example, 12:01:15 ). |
s |
Displays the second as a number without leading zeros (for example, 12:15:5 ). Use %s if this is the only character in your user-defined numeric format. |
ss |
Displays the second as a number with leading zeros (for example, 12:15:05 ). |
f |
Displays fractions of seconds. For example ff displays hundredths of seconds, whereas ffff displays ten-thousandths of seconds. You may use up to seven f symbols in your user-defined format. Use %f if this is the only character in your user-defined numeric format. |
t |
Uses the 12-hour clock and displays an uppercase A for any hour before noon; displays an uppercase P for any hour between noon and 11:59 P.M. Use %t if this is the only character in your user-defined numeric format. |
tt |
For locales that use a 12-hour clock, displays an uppercase AM with any hour before noon; displays an uppercase PM with any hour between noon and 11:59 P.M.For locales that use a 24-hour clock, displays nothing. |
y |
Displays the year number (0-9) without leading zeros. Use %y if this is the only character in your user-defined numeric format. |
yy |
Displays the year in two-digit numeric format with a leading zero, if applicable. |
yyy |
Displays the year in four-digit numeric format. |
yyyy |
Displays the year in four-digit numeric format. |
z |
Displays the timezone offset without a leading zero (for example, -8 ). Use %z if this is the only character in your user-defined numeric format. |
zz |
Displays the timezone offset with a leading zero (for example, -08 ) |
zzz |
Displays the full timezone offset (for example, -08:00 ) |
Legacy Code Example
The following are examples of user-defined date and time formats for December 7, 1958, 8:50 PM, 35 seconds
:
Format | Displays |
---|---|
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 |
Smart Device Developer Notes
The minimum time resolution for a device is determined by the manufacturer of the device. If the time resolution for the device is coarse enough, the f
format character returns 0 when run on that device.
Applies to
See also
Athugasemdir
https://aka.ms/ContentUserFeedback.
Væntanlegt: Á árinu 2024 munum við hætta með GitHub-mál sem ábendingaleið fyrir efni og skipta því út fyrir nýtt ábendingakerfi. Frekari upplýsingar er að finna hér:Senda inn og skoða endurgjöf fyrir