Sdílet prostřednictvím


Strings.Format(Object, String) Metoda

Definice

Vrátí řetězec formátovaný podle pokynů obsažených ve formátu String výrazu.

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

Parametry

Expression
Object

Požadovaný. Libovolný platný výraz.

Style
String

Volitelný. Platný pojmenovaný nebo uživatelem definovaný formát String výraz.

Návraty

Řetězec formátovaný podle pokynů obsažených ve formátu String výrazu.

Příklady

Tento příklad ukazuje různé použití funkce Format k formátování hodnot pomocí formátů String i uživatelsky definovaných formátů. Pro oddělovač kalendářních dat (/), oddělovač času (:) a indikátory AM/PM (t a tt), skutečný formátovaný výstup zobrazený systémem závisí na nastavení národního prostředí, které kód používá. Když se časy a data zobrazí ve vývojovém prostředí, použije se krátký formát času a krátký formát data národního prostředí kódu.

Poznámka

V případě národních prostředí, která používají 24hodinový formát, se indikátory AM/PM (t a tt) nezobrazují nic.

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%")

Poznámky

Metoda String.Format také poskytuje podobné funkce.

Pokud formátujete nelokalizovaný číselný řetězec, měli byste použít uživatelsky definovaný číselný formát, abyste měli jistotu, že získáte požadovaný vzhled.

Pokud se pokusíte formátovat číslo bez zadání Style, funkce Format poskytuje funkce podobné funkci Str, i když je mezinárodně vědoma. Kladná čísla formátovaná jako řetězce používající funkci Format ale nezahrnují úvodní mezeru vyhrazenou pro znaménko hodnoty; převedené pomocí funkce Str zachovají úvodní mezeru.

Různé formáty pro různé číselné hodnoty

Výraz formátu definovaný uživatelem pro čísla může mít jeden až tři oddíly oddělené středníky. Pokud argument Style funkce Format obsahuje jeden z předdefinovaných číselných formátů, je povolen pouze jeden oddíl.

Pokud používáte Toto je výsledek.
Pouze jeden oddíl Výraz formátu se vztahuje na všechny hodnoty.
Dva oddíly První část se vztahuje na kladné hodnoty a nuly; druhý se vztahuje na záporné hodnoty.
Tři oddíly První část se vztahuje na kladné hodnoty, druhá se vztahuje na záporné hodnoty a třetí se vztahuje na nuly.

Následující příklad obsahuje dvě části: první definuje formát pro kladné hodnoty a nuly; druhá část definuje formát záporných hodnot. Vzhledem k tomu, že Style argument Format funkce přebírá řetězec, je uzavřený uvozovkami.

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

Pokud mezi nimi zahrnete středníky, chybějící oddíl se vytiskne ve formátu kladné hodnoty. Například následující formát zobrazuje kladné a záporné hodnoty pomocí formátu v první části a zobrazí Zero, pokud je hodnota nula.

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

Předdefinované číselné formáty

Následující tabulka uvádí předdefinované názvy číselných formátů. Tyto hodnoty mohou být použity jako argument Style pro funkci Format:

Název formátu Popis
General Number, Gnebo g Zobrazí číslo bez oddělovače tisíců.

Například Format(&H3FA, "g") vrátí 1018.
Currency, Cnebo c Zobrazí číslo s oddělovačem tisíců, pokud je to vhodné; zobrazí dvě číslice napravo od oddělovače desetinných míst. Výstup je založený na nastavení národního prostředí systému.

Například Format(1234567, "c") vrátí $1,234,567.00.
Fixed, Fnebo f Zobrazí aspoň jednu číslici vlevo a dvě číslice vpravo od oddělovače desetinných míst.

Například Format(1234567, "f") vrátí 1234567.00.
Standard, Nnebo n Zobrazí číslo s oddělovačem tisíců, nejméně jednu číslici vlevo a dvě číslice vpravo od oddělovače desetinných míst.

Například Format(1234567, "n") vrátí 1,234,567.00.
Percent Zobrazí číslo vynásobené číslem 100 znakem procenta (%) připojeným okamžitě vpravo; vždy zobrazí dvě číslice napravo od oddělovače desetinných míst.

Například Format(0.4744, "Percent") vrátí 47.44%.
Pnebo p Zobrazí číslo s oddělovačem tisíců vynásobeným 100 znaménkem procenta (%) připojeným vpravo a odděleným jedním mezerou; vždy zobrazí dvě číslice napravo od oddělovače desetinných míst.

Například Format(0.80345, "p") vrátí 80.35 %.
Scientific Používá standardní vědecký zápis, který poskytuje dvě významné číslice.

Například Format(1234567, "Scientific") vrátí 1.23E+06.
Enebo e Používá standardní vědecký zápis, který poskytuje šest významných číslic.

Například Format(1234567, "e") vrátí 1.234567e+006.
Dnebo d Zobrazí číslo jako řetězec, který obsahuje hodnotu čísla ve formátu Decimal (základ 10). Tato možnost je podporována pouze pro integrální typy ( pouzeByte, Short, Integer, Long).

Například Format(&H7F, "d") vrátí 127.
Xnebo x Zobrazí číslo jako řetězec, který obsahuje hodnotu čísla v šestnáctkovém formátu (základ 16). Tato možnost je podporována pouze pro integrální typy ( pouzeByte, Short, Integer, Long).

Například Format(127, "x") vrátí 7f.
Yes/No Zobrazí No, pokud je číslo 0; v opačném případě se zobrazí Yes.

Například Format(0, "Yes/No") vrátí No.
True/False Zobrazí False, pokud je číslo 0; v opačném případě se zobrazí True.

Například Format(1, "True/False") vrátí True.
On/Off Zobrazí Off, pokud je číslo 0; v opačném případě se zobrazí On.

Například Format(1, "On/Off") vrátí On.

Poznámky pro vývojáře inteligentních zařízení

Formáty Yes/No, True/Falsea On/Off nejsou podporovány.

User-Defined číselné formáty

Následující tabulka uvádí znaky, které můžete použít k vytvoření uživatelsky definovaných formátů čísel. Dají se použít k sestavení argumentu Style pro funkci Format:

Znak Popis
Žádný Zobrazí číslo bez formátování.
(0) Zástupný symbol číslic. Zobrazí číslici nebo nulu. Pokud má výraz číslici v pozici, kde se nula zobrazí ve formátovacím řetězci, zobrazte ji; v opačném případě zobrazí nulu v dané pozici.

Pokud má číslo méně číslic, než je nula (na obou stranách desetinného čísla) ve výrazu formátu, zobrazí počáteční nebo koncové nuly. Pokud má číslo vpravo od oddělovače desetinných míst více číslic, než je napravo od oddělovače desetinných míst ve výrazu formátu nula, zaokrouhlí číslo na tolik desetinných míst, kolik je nul. Pokud má číslo nalevo od oddělovače desetinných míst více číslic, než je vlevo od oddělovače desetinných míst ve výrazu formátu, zobrazí se nadbytečné číslice beze změny.
(#) Zástupný symbol číslic. Zobrazí číslici nebo nic. Pokud má výraz číslici v pozici, kde se v řetězci formátu zobrazí znak #, zobrazí jej; v opačném případě se v této pozici nezobrazí nic.

Tento symbol funguje stejně jako zástupný symbol 0 číslice s tím rozdílem, že počáteční a koncové nuly se nezobrazují, pokud číslo obsahuje méně číslic, než je # znaků na obou stranách oddělovače desetinných míst ve výrazu formátu.
(.) Zástupný symbol desetinné čárky Zástupný symbol desetinné čárky určuje, kolik číslic se zobrazí vlevo a vpravo od oddělovače desetinných míst. Pokud formátovací výraz obsahuje pouze # znaky vlevo od tohoto symbolu; čísla menší než 1 začínají oddělovačem desetinných míst. Pokud chcete zobrazit úvodní nulu zobrazenou s desetinnými čísly, použijte nulu jako zástupný symbol první číslice vlevo od oddělovače desetinných míst. V některých národních prostředích se jako oddělovač desetinných míst používá čárka. Skutečný znak použitý jako zástupný symbol desetinné čárky ve formátované výstupu závisí na formátu čísla rozpoznaném systémem. Proto byste měli tečku použít jako zástupný symbol desetinné čárky ve formátech, i když jste v národním prostředí, které používá čárku jako zástupný symbol desetinné čárky. Formátovaný řetězec se zobrazí ve správném formátu pro národní prostředí.
(%) Zástupný symbol procenta Vynásobí výraz 100. Znak procenta (%) se vloží do pozice, kde se zobrazí v řetězci formátu.
(,) Oddělovač tisíců Oddělovač tisíců odděluje tisíce od stovek v čísle, které má nalevo od oddělovače desetinných míst čtyři nebo více míst. Standardní použití oddělovače tisíců je určeno, pokud formát obsahuje oddělovač tisíců obklopený zástupnými symboly číslic (0 nebo #).

Oddělovač tisíců hned nalevo od oddělovače desetinných míst (bez ohledu na to, zda je zadán desetinný znak) nebo jako znak úplně vpravo v řetězci znamená "škálovat číslo tak, že ho vydělíte číslem 1 000 a podle potřeby zaokrouhlíte". Čísla menší než 1 000, ale větší nebo rovna 500 se zobrazí jako 1a čísla menší než 500 se zobrazí jako 0. Dva sousední oddělovače tisíců v této pozici se škálují podle faktoru 1 milionu a dalšího faktoru 1 000 pro každý další oddělovač.

Více oddělovačů v libovolné jiné pozici než bezprostředně vlevo od oddělovače desetinných míst nebo pozice úplně vpravo v řetězci jsou považovány za určení použití oddělovače tisíců. V některých národních prostředích se tečka používá jako oddělovač tisíců. Skutečný znak použitý jako oddělovač tisíců ve formátované výstupu závisí na formátu čísla rozpoznaného systémem. Proto byste měli jako oddělovač tisíců ve formátech použít čárku, i když jste v národním prostředí, které používá tečku jako oddělovač tisíců. Formátovaný řetězec se zobrazí ve správném formátu pro národní prostředí.

Představte si například tři následující řetězce formátu:

- "#,0.", který používá oddělovač tisíců k naformátování čísla 100 milionů jako řetězec "100 000 000".
- "#0,.", který používá škálování podle faktoru 100 tisíc k naformátování čísla 100 milionů jako řetězec "100000".
- "#,0,.", který používá oddělovač tisíců a škálování o jeden tisíc k naformátování čísla 100 milionů jako řetězec "100 000".
(:) Oddělovač času V některých národních prostředích mohou být k reprezentaci oddělovače času použity jiné znaky. Oddělovač času odděluje hodiny, minuty a sekundy při formátování časových hodnot. Skutečný znak použitý jako oddělovač času ve formátované výstupu je určen nastavením systému.
(/) Oddělovač kalendářních dat V některých národních prostředích mohou být použity jiné znaky, které představují oddělovač kalendářních dat. Oddělovač kalendářních dat odděluje den, měsíc a rok při formátování hodnot kalendářních dat. Skutečný znak použitý jako oddělovač kalendářních dat ve formátované výstupu je určen nastavením systému.
(E-``E+``e-``e+) Vědecký formát. Pokud výraz formátu obsahuje #0 nalevo od E-, E+, e-nebo e+, zobrazí se číslo ve vědeckém formátu a E nebo e se vloží mezi číslo a jeho exponent. Počet zástupných symbolů číslic vlevo určuje počet číslic v exponentu. Pomocí E- nebo e- umístěte znaménko minus vedle záporných exponentů. Pomocí E+ nebo e+ umístěte znaménko minus vedle záporných exponentů a znaménko plus vedle kladných exponentů. Chcete-li získat správné formátování, musíte na pravé straně tohoto symbolu zahrnout zástupné symboly číslic.
- + $ ( ) Literální znaky. Tyto znaky se zobrazí přesně tak, jak jsou zadány v řetězci formátu. Pokud chcete zobrazit jiný znak než jeden z uvedených znaků, před něj zadejte zpětné lomítko (\) nebo ho uzavřete do uvozovek (" ").
(\) Zobrazí další znak v řetězci formátu. Chcete-li zobrazit znak, který má zvláštní význam jako literálový znak, před ním zpětné lomítko (\). Samotné zpětné lomítko se nezobrazuje. Použití zpětného lomítka je stejné jako uzavření dalšího znaku do uvozovek. Chcete-li zobrazit zpětné lomítko, použijte dvě zpětná lomítka (\\).

Příklady znaků, které nelze zobrazit jako literální znaky, jsou znaky formátování data a času (a, c, d, h, m, n, p, q, s, t, w, y, /a :), znaky číselného formátování (#, 0, %, E, e, čárka, a tečky) a znaky formátování řetězců (@, &, <, >a !).
("``ABC``") Zobrazí řetězec uvnitř uvozovek (" "). Pokud chcete do argumentu stylu zahrnout řetězec z kódu, musíte použít Chr(34) k uzavření textu (34 je kód znaku uvozovky (")).

Příklad starší verze kódu

Následující tabulka obsahuje ukázkové výrazy formátu pro čísla. (Všechny tyto příklady předpokládají, že nastavení národního prostředí vašeho systému je angličtina-USA.) První sloupec obsahuje formátovací řetězce pro Style argument funkce Format; ostatní sloupce obsahují výsledný výstup, pokud formátovaná data mají hodnotu zadanou v záhlavích sloupců.

Format (Style) "5" formátováno jako -5 naformátováno jako Formát "0,5" jako
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

Předdefinované formáty data a času

Následující tabulka uvádí předdefinované názvy formátů data a času. Můžete je použít jako argument stylu pro funkci Format:

Název formátu Popis
General Datenebo G Zobrazí datum nebo čas. Například 3/12/2008 11:07:31 AM. Zobrazení data je určeno aktuální hodnotou jazykové verze vaší aplikace.
Long Date, Medium Datenebo D Zobrazí datum podle dlouhého formátu data aktuální jazykové verze. Například Wednesday, March 12, 2008.
Short Datenebo d Zobrazí datum ve formátu krátkého data aktuální jazykové verze. Například 3/12/2008.

Znak d zobrazí den v uživatelsky definovaném formátu data.
Long Time, Medium Timenebo T Zobrazí čas pomocí dlouhého formátu času aktuální jazykové verze; obvykle zahrnuje hodiny, minuty, sekundy. Například 11:07:31 AM.
Short Time nebo t Zobrazí čas pomocí krátkého formátu aktuální jazykové verze. Například 11:07 AM.

Znak t zobrazuje hodnoty AM nebo PM pro národní prostředí, které používají 12hodinový formát času definovaný uživatelem.
f Zobrazí dlouhé datum a krátký čas podle formátu aktuální jazykové verze. Například Wednesday, March 12, 2008 11:07 AM.
F Zobrazí dlouhé datum a dlouhý čas podle formátu aktuální jazykové verze. Například Wednesday, March 12, 2008 11:07:31 AM.
g Zobrazí krátké datum a krátký čas podle formátu aktuální jazykové verze. Například 3/12/2008 11:07 AM.
M, m Zobrazí měsíc a den data. Například March 12.

Znak M zobrazí měsíc v uživatelsky definovaném formátu data. Znak m zobrazí minuty v uživatelsky definovaném formátu času.
R, r Formátuje datum podle vlastnosti RFC1123Pattern. Například Wed, 12 Mar 2008 11:07:31 GMT. Formátované datum neupravuje hodnotu data a času. Před voláním funkce Format je nutné upravit hodnotu datum a čas na HODNOTU GMT.
s Naformátuje datum a čas jako seřazený index. Například 2008-03-12T11:07:31.

Znak s zobrazí sekundy v uživatelsky definovaném formátu času.
u Naformátuje datum a čas jako řaditelný index GMT. Například 2008-03-12 11:07:31Z.
U Formátuje datum a čas s dlouhým datem a dlouhým časem jako GMT. Například Wednesday, March 12, 2008 6:07:31 PM.
Y, y Naformátuje datum jako rok a měsíc. Například March, 2008.

Znaky Y a y zobrazují rok v uživatelsky definovaném formátu data.

Další informace o aktuální jazykové verzi aplikace naleznete v tématu Jak jazyková verze ovlivňuje řetězce v jazyce Visual Basic.

formáty data a času User-Defined

Následující tabulka uvádí znaky, které můžete použít k vytvoření uživatelsky definovaných formátů data a času. Na rozdíl od dřívějších verzí jazyka Visual Basic jsou tyto znaky formátu citlivé na malá a velká písmena.

Znak Popis
(:) Oddělovač času V některých národních prostředích mohou být k reprezentaci oddělovače času použity jiné znaky. Oddělovač času odděluje hodiny, minuty a sekundy při formátování časových hodnot. Skutečný znak, který se používá jako oddělovač času ve formátovaného výstupu, je určen aktuální hodnotou jazykové verze vaší aplikace.
(/) Oddělovač kalendářních dat V některých národních prostředích mohou být použity jiné znaky, které představují oddělovač kalendářních dat. Oddělovač kalendářních dat odděluje den, měsíc a rok při formátování hodnot kalendářních dat. Skutečný znak, který se používá jako oddělovač kalendářních dat ve formátované výstupu, je určen aktuální jazykovou verzí vaší aplikace.
(%) Používá se k označení, že následující znak by měl být přečtený jako formát s jedním písmenem bez ohledu na koncová písmena. Používá se také k označení, že formát s jedním písmenem se čte jako formát definovaný uživatelem. Další podrobnosti najdete v následujících tématech.
d Zobrazí den jako číslo bez úvodní nuly (například 1). Pokud se jedná o jediný znak v uživatelsky definovaném číselném formátu, použijte %d.
dd Zobrazí den jako číslo s úvodní nulou (například 01).
ddd Zobrazí den jako zkratku (například Sun).
dddd Zobrazí den jako úplný název (například Sunday).
M Zobrazí měsíc jako číslo bez úvodní nuly (například leden je reprezentován jako 1). Pokud se jedná o jediný znak v uživatelsky definovaném číselném formátu, použijte %M.
MM Zobrazí měsíc jako číslo s úvodní nulou (například 01/12/01).
MMM Zobrazí měsíc jako zkratku (například Jan).
MMMM Zobrazí měsíc jako úplný název měsíce (například January).
gg Zobrazí řetězec období/éry (například A.D.).
h Zobrazí hodinu jako číslo bez počátečních nul pomocí 12hodinového formátu (například 1:15:15 PM). Pokud se jedná o jediný znak v uživatelsky definovaném číselném formátu, použijte %h.
hh Zobrazí hodinu jako číslo s počátečními nulami pomocí 12hodinových hodin (například 01:15:15 PM).
H Zobrazí hodinu jako číslo bez počátečních nul pomocí 24hodinových hodin (například 1:15:15). Pokud se jedná o jediný znak v uživatelsky definovaném číselném formátu, použijte %H.
HH Zobrazí hodinu jako číslo s počátečními nulami pomocí 24hodinových hodin (například 01:15:15).
m Zobrazí minutu jako číslo bez úvodních nul (například 12:1:15). Pokud se jedná o jediný znak v uživatelsky definovaném číselném formátu, použijte %m.
mm Zobrazí minutu jako číslo s úvodními nulami (například 12:01:15).
s Zobrazí sekundu jako číslo bez úvodních nul (například 12:15:5). Pokud se jedná o jediný znak v uživatelsky definovaném číselném formátu, použijte %s.
ss Zobrazí sekundu jako číslo s úvodními nulami (například 12:15:05).
f Zobrazí zlomky sekund. Například ff zobrazí stovky sekund, zatímco ffff zobrazí desetitisíce sekund. Ve formátu definovaném uživatelem můžete použít až sedm symbolů f. Pokud se jedná o jediný znak v uživatelsky definovaném číselném formátu, použijte %f.
t Používá 12hodinové hodiny a zobrazuje velké A pro libovolnou hodinu před polednem; zobrazí velká P pro libovolnou hodinu mezi polednem a 11:59. Použijte %t, pokud se jedná o jediný znak v uživatelsky definovaném číselném formátu.
tt Pro národní prostředí, která používají 12hodinový formát, zobrazí velké AM s libovolnou hodinou před polednem; zobrazí velké PM s libovolnou hodinou mezi polednem a 11:59.

Pro národní prostředí, která používají 24hodinový formát, se nic nezobrazí.
y Zobrazí číslo roku (0–9) bez úvodních nul. Pokud se jedná o jediný znak v uživatelsky definovaném číselném formátu, použijte %y.
yy Zobrazí rok ve dvouciferném číselném formátu s úvodní nulou( pokud je k dispozici).
yyy Zobrazí rok ve čtyřciferném číselném formátu.
yyyy Zobrazí rok ve čtyřciferném číselném formátu.
z Zobrazí posun časového pásma bez úvodní nuly (například -8). Pokud se jedná o jediný znak v uživatelsky definovaném číselném formátu, použijte %z.
zz Zobrazí posun časového pásma s úvodní nulou (například -08).
zzz Zobrazí posun úplného časového pásma (například -08:00).

Příklad starší verze kódu

Tady jsou příklady uživatelsky definovaných formátů data a času pro December 7, 1958, 8:50 PM, 35 seconds:

Formát Zobrazuje
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

Poznámky pro vývojáře inteligentních zařízení

Minimální časové rozlišení zařízení určuje výrobce zařízení. Pokud je časové rozlišení zařízení dostatečně hrubé, vrátí f znak formátu 0 při spuštění na daném zařízení.

Platí pro

Viz také