Strings.Format(Object, String) Metodo

Definizione

Restituisce una stringa formattata in base alle istruzioni contenute in un formato String'espressione.

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

Parametri

Expression
Object

Obbligatorio. Qualsiasi espressione valida.

Style
String

Opzionale. Un formato denominato o definito dall'utente valido String'espressione.

Restituisce

Stringa formattata in base alle istruzioni contenute in un formato String'espressione.

Esempio

In questo esempio vengono illustrati vari usi della funzione Format per formattare i valori usando formati String e formati definiti dall'utente. Per il separatore di data (/), il separatore temporale (:) e gli indicatori AM/PM (t e tt), l'output formattato effettivo visualizzato dal sistema dipende dalle impostazioni locali usate dal codice. Quando le date e le ore vengono visualizzate nell'ambiente di sviluppo, vengono usati il formato di ora breve e la data breve delle impostazioni locali del codice.

Nota

Per le impostazioni locali che usano un orologio di 24 ore, gli indicatori AM/PM (t e tt) non visualizzano nulla.

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

Commenti

Il metodo String.Format fornisce anche funzionalità simili.

Se si formatta una stringa numerica non localizzata, è consigliabile usare un formato numerico definito dall'utente per assicurarsi di ottenere l'aspetto desiderato.

Se si tenta di formattare un numero senza specificare Style, la funzione Format fornisce funzionalità simili alla funzione Str, anche se è compatibile a livello internazionale. Tuttavia, i numeri positivi formattati come stringhe che usano la funzione Format non includono uno spazio iniziale riservato per il segno del valore; quelli convertiti usando la funzione Str mantengono lo spazio iniziale.

Formati diversi per valori numerici diversi

Un'espressione di formato definita dall'utente per i numeri può avere da una a tre sezioni separate da punto e virgola. Se l'argomento Style della funzione Format contiene uno dei formati numerici predefiniti, è consentita una sola sezione.

Se si usa Questo è il risultato
Solo una sezione L'espressione di formato si applica a tutti i valori.
Due sezioni La prima sezione si applica ai valori positivi e agli zeri; il secondo vale per i valori negativi.
Tre sezioni La prima sezione si applica ai valori positivi, la seconda si applica ai valori negativi e la terza si applica agli zeri.

Nell'esempio seguente sono presenti due sezioni: la prima definisce il formato per i valori positivi e gli zeri; la seconda sezione definisce il formato per i valori negativi. Poiché l'argomento Style della funzione Format accetta una stringa, viene racchiuso tra virgolette.

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

Se si includono punti e virgola, la sezione mancante viene stampata utilizzando il formato del valore positivo. Ad esempio, il formato seguente visualizza valori positivi e negativi usando il formato nella prima sezione e visualizza Zero se il valore è zero.

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

Formati numerici predefiniti

La tabella seguente identifica i nomi di formato numerico predefiniti. Questi possono essere usati per nome come argomento Style per la funzione Format:

Nome formato Descrizione
General Number, Go g Visualizza il numero senza separatore delle migliaia.

Ad esempio, Format(&H3FA, "g") restituisce 1018.
Currency, Co c Visualizza il numero con separatore delle migliaia, se appropriato; visualizza due cifre a destra del separatore decimale. L'output si basa sulle impostazioni locali di sistema.

Ad esempio, Format(1234567, "c") restituisce $1,234,567.00.
Fixed, Fo f Visualizza almeno una cifra a sinistra e due cifre a destra del separatore decimale.

Ad esempio, Format(1234567, "f") restituisce 1234567.00.
Standard, No n Visualizza il numero con separatore delle migliaia, almeno una cifra a sinistra e due cifre a destra del separatore decimale.

Ad esempio, Format(1234567, "n") restituisce 1,234,567.00.
Percent Visualizza il numero moltiplicato per 100 con un segno di percentuale (%) accodato immediatamente a destra; visualizza sempre due cifre a destra del separatore decimale.

Ad esempio, Format(0.4744, "Percent") restituisce 47.44%.
Po p Visualizza il numero con separatore millesimi moltiplicato per 100 con un segno di percentuale (%) aggiunto a destra e separato da uno spazio singolo; visualizza sempre due cifre a destra del separatore decimale.

Ad esempio, Format(0.80345, "p") restituisce 80.35 %.
Scientific Usa la notazione scientifica standard, fornendo due cifre significative.

Ad esempio, Format(1234567, "Scientific") restituisce 1.23E+06.
Eo e Utilizza la notazione scientifica standard, fornendo sei cifre significative.

Ad esempio, Format(1234567, "e") restituisce 1.234567e+006.
Do d Visualizza il numero come stringa che contiene il valore del numero in formato Decimal (base 10). Questa opzione è supportata solo per i tipi integrali ( soloByte, Short, Integer, Long).

Ad esempio, Format(&H7F, "d") restituisce 127.
Xo x Visualizza il numero come stringa che contiene il valore del numero in formato esadecimale (base 16). Questa opzione è supportata solo per i tipi integrali ( soloByte, Short, Integer, Long).

Ad esempio, Format(127, "x") restituisce 7f.
Yes/No Visualizza No se il numero è 0; in caso contrario, visualizza Yes.

Ad esempio, Format(0, "Yes/No") restituisce No.
True/False Visualizza False se il numero è 0; in caso contrario, visualizza True.

Ad esempio, Format(1, "True/False") restituisce True.
On/Off Visualizza Off se il numero è 0; in caso contrario, visualizza On.

Ad esempio, Format(1, "On/Off") restituisce On.

Note per gli sviluppatori di smart device

I formati Yes/No, True/Falsee On/Off non sono supportati.

formati numerici User-Defined

La tabella seguente identifica i caratteri che è possibile usare per creare formati numerici definiti dall'utente. Questi possono essere usati per compilare l'argomento Style per la funzione Format:

Carattere Descrizione
Nessuno Visualizza il numero senza formattazione.
(0) Segnaposto cifre. Visualizza una cifra o uno zero. Se l'espressione ha una cifra nella posizione in cui viene visualizzato lo zero nella stringa di formato, visualizzarlo; in caso contrario, visualizza uno zero in tale posizione.

Se il numero ha un numero minore di zeri (su entrambi i lati del decimale) nell'espressione di formato, visualizza zeri iniziali o finali. Se il numero ha più cifre a destra del separatore decimale rispetto a zero a destra del separatore decimale nell'espressione di formato, arrotonda il numero a quante cifre decimali sono presenti zeri. Se il numero ha più cifre a sinistra del separatore decimale rispetto a zero a sinistra del separatore decimale nell'espressione di formato, visualizza le cifre aggiuntive senza alcuna modifica.
(#) Segnaposto cifre. Visualizza una cifra o niente. Se l'espressione ha una cifra nella posizione in cui il carattere # viene visualizzato nella stringa di formato, lo visualizza; in caso contrario, non visualizza nulla in tale posizione.

Questo simbolo funziona come il segnaposto di 0 cifre, ad eccezione del fatto che gli zeri iniziali e finali non vengono visualizzati se il numero ha meno cifre rispetto a quelle presenti # caratteri su entrambi i lati del separatore decimale nell'espressione di formato.
(.) Segnaposto decimale. Il segnaposto decimale determina il numero di cifre visualizzate a sinistra e a destra del separatore decimale. Se l'espressione di formato contiene solo # caratteri a sinistra di questo simbolo; numeri inferiori a 1 iniziano con un separatore decimale. Per visualizzare uno zero iniziale visualizzato con numeri frazionari, usare zero come segnaposto della prima cifra a sinistra del separatore decimale. In alcune impostazioni locali viene usata una virgola come separatore decimale. Il carattere effettivo utilizzato come segnaposto decimale nell'output formattato dipende dal formato numerico riconosciuto dal sistema. Pertanto, è consigliabile usare il punto come segnaposto decimale nei formati, anche se ci si trova in impostazioni locali che usano una virgola come segnaposto decimale. La stringa formattata verrà visualizzata nel formato corretto per le impostazioni locali.
(%) Segnaposto percentuale. Moltiplica l'espressione per 100. Il carattere percentuale (%) viene inserito nella posizione in cui viene visualizzato nella stringa di formato.
(,) Separatore delle migliaia. Il separatore delle migliaia separa migliaia da centinaia all'interno di un numero con quattro o più posizioni a sinistra del separatore decimale. L'uso standard del separatore delle migliaia viene specificato se il formato contiene un separatore di migliaia racchiuso tra segnaposto di cifre (0 o #).

Un separatore di migliaia immediatamente a sinistra del separatore decimale (se è specificato o meno un separatore decimale) o come carattere più a destra nella stringa significa "scalare il numero dividendo per 1.000, arrotondando in base alle esigenze". I numeri inferiori a 1.000 ma maggiori o uguali a 500 vengono visualizzati come 1e i numeri inferiori a 500 vengono visualizzati come 0. Due separatori di migliaia adiacenti in questa posizione scalano di un fattore pari a 1 milione e un fattore aggiuntivo di 1.000 per ogni separatore aggiuntivo.

Più separatori in qualsiasi posizione diversa da immediatamente a sinistra del separatore decimale o la posizione più a destra nella stringa vengono considerati semplicemente specificando l'uso di un separatore di migliaia. In alcune impostazioni locali, un punto viene usato come separatore delle migliaia. Il carattere effettivo usato come separatore delle migliaia nell'output formattato dipende dal formato numerico riconosciuto dal sistema. Pertanto, è consigliabile usare la virgola come separatore delle migliaia nei formati, anche se ci si trova in impostazioni locali che usano un punto come separatore delle migliaia. La stringa formattata verrà visualizzata nel formato corretto per le impostazioni locali.

Si considerino ad esempio le tre stringhe di formato seguenti:

- "#,0.", che usa il separatore delle migliaia per formattare il numero 100 milioni come stringa "100.000.000".
- "#0,.", che usa il ridimensionamento di un fattore pari a mille per formattare il numero 100 milioni come stringa "100000".
- "#,0,.", che usa il separatore delle migliaia e il ridimensionamento di un migliaio per formattare il numero 100 milioni come stringa "100.000".
(:) Separatore di tempo. In alcune impostazioni locali è possibile usare altri caratteri per rappresentare il separatore di tempo. Il separatore di tempo separa ore, minuti e secondi quando vengono formattati i valori di ora. Il carattere effettivo usato come separatore temporale nell'output formattato è determinato dalle impostazioni di sistema.
(/) Separatore di data. In alcune impostazioni locali è possibile usare altri caratteri per rappresentare il separatore di data. Il separatore di data separa il giorno, il mese e l'anno in cui i valori di data vengono formattati. Il carattere effettivo usato come separatore di data nell'output formattato è determinato dalle impostazioni di sistema.
(E-``E+``e-``e+) Formato scientifico. Se l'espressione di formato contiene almeno un segnaposto di cifra (0 o #) a sinistra di E-, E+, e-o e+, il numero viene visualizzato in formato scientifico e E o e viene inserito tra il numero e il relativo esponente. Il numero di segnaposto di cifre a sinistra determina il numero di cifre nell'esponente. Usare E- o e- per posizionare un segno meno accanto a esponenti negativi. Usare E+ o e+ per posizionare un segno meno accanto a esponenti negativi e un segno più accanto a esponenti positivi. È inoltre necessario includere segnaposto cifre a destra di questo simbolo per ottenere la formattazione corretta.
- + $ ( ) Caratteri letterali. Questi caratteri vengono visualizzati esattamente come digitati nella stringa di formato. Per visualizzare un carattere diverso da uno di quelli elencati, precederlo con una barra rovesciata (\) o racchiuderla tra virgolette doppie (" ").
(\) Visualizza il carattere successivo nella stringa di formato. Per visualizzare un carattere con un significato speciale come carattere letterale, precederlo con una barra rovesciata (\). La barra rovesciata non viene visualizzata. L'uso di una barra rovesciata equivale a racchiudere il carattere successivo tra virgolette doppie. Per visualizzare una barra rovesciata, utilizzare due barre rovesciata (\\).

Esempi di caratteri che non possono essere visualizzati come caratteri letterali sono i caratteri di formattazione della data e della formattazione temporale (a, c, d, h, m, n, p, q, s, t, w, y, /e :), i caratteri di formattazione numerica (#, 0, %, E, e, virgola, e punto) e i caratteri di formattazione delle stringhe (@, &, <, >e !).
("``ABC``") Visualizza la stringa all'interno delle virgolette doppie (" "). Per includere una stringa nell'argomento di stile dall'interno del codice, è necessario usare Chr(34) per racchiudere il testo (34 è il codice carattere per una virgoletta (")).

Esempio di codice legacy

La tabella seguente contiene alcune espressioni di formato di esempio per i numeri. Questi esempi presuppongono che l'impostazione delle impostazioni locali del sistema sia inglese-statunitense. La prima colonna contiene le stringhe di formato per l'argomento Style della funzione Format; le altre colonne contengono l'output risultante se i dati formattati hanno il valore specificato nelle intestazioni di colonna.

Formato (Style) "5" formattato come "-5" formattato come "0.5" formattato come
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

Formati di data/ora predefiniti

La tabella seguente identifica i nomi di formato di data e ora predefiniti. Questi possono essere usati per nome come argomento di stile per la funzione Format:

Nome formato Descrizione
General Dateo G Visualizza una data e/o un'ora. Ad esempio, 3/12/2008 11:07:31 AM. La visualizzazione della data è determinata dal valore delle impostazioni cultura correnti dell'applicazione.
Long Date, Medium Dateo D Visualizza una data in base al formato di data estesa delle impostazioni cultura correnti. Ad esempio, Wednesday, March 12, 2008.
Short Dateo d Visualizza una data usando il formato di data breve delle impostazioni cultura correnti. Ad esempio, 3/12/2008.

Il carattere d visualizza il giorno in un formato di data definito dall'utente.
Long Time, Medium Timeo T Visualizza un'ora usando il formato a lungo termine delle impostazioni cultura correnti; in genere include ore, minuti, secondi. Ad esempio, 11:07:31 AM.
Short Time o t Visualizza un'ora usando il formato di tempo breve delle impostazioni cultura correnti. Ad esempio, 11:07 AM.

Il carattere t visualizza AM o PM valori per le impostazioni locali che usano un orologio di 12 ore in un formato di ora definito dall'utente.
f Visualizza la data estesa e l'ora breve in base al formato delle impostazioni cultura correnti. Ad esempio, Wednesday, March 12, 2008 11:07 AM.
F Visualizza la data estesa e l'ora lunga in base al formato delle impostazioni cultura correnti. Ad esempio, Wednesday, March 12, 2008 11:07:31 AM.
g Visualizza la data breve e l'ora breve in base al formato delle impostazioni cultura correnti. Ad esempio, 3/12/2008 11:07 AM.
M, m Visualizza il mese e il giorno di una data. Ad esempio, March 12.

Il carattere M visualizza il mese in un formato di data definito dall'utente. Il carattere m visualizza i minuti in un formato di tempo definito dall'utente.
R, r Formatta la data in base alla proprietà RFC1123Pattern. Ad esempio, Wed, 12 Mar 2008 11:07:31 GMT. La data formattata non regola il valore della data e dell'ora. Prima di chiamare la funzione di Format, è necessario modificare il valore Date/Time su GMT.
s Formatta la data e l'ora come indice ordinabile. Ad esempio, 2008-03-12T11:07:31.

Il carattere s visualizza i secondi in un formato di tempo definito dall'utente.
u Formatta la data e l'ora come indice ordinabile GMT. Ad esempio, 2008-03-12 11:07:31Z.
U Formatta la data e l'ora con la data e l'ora lunghe come GMT. Ad esempio, Wednesday, March 12, 2008 6:07:31 PM.
Y, y Formatta la data come anno e mese. Ad esempio, March, 2008.

I caratteri Y e y visualizzano l'anno in un formato di data definito dall'utente.

Per altre informazioni sulle impostazioni cultura correnti dell'applicazione, vedere Impatto delle impostazioni cultura sulle stringhe in Visual Basic.

User-Defined formati di data/ora

La tabella seguente mostra i caratteri che è possibile usare per creare formati di data/ora definiti dall'utente. A differenza delle versioni precedenti di Visual Basic, questi caratteri di formato fanno distinzione tra maiuscole e minuscole.

Carattere Descrizione
(:) Separatore di tempo. In alcune impostazioni locali è possibile usare altri caratteri per rappresentare il separatore di tempo. Il separatore di tempo separa ore, minuti e secondi quando vengono formattati i valori di ora. Il carattere effettivo usato come separatore temporale nell'output formattato è determinato dal valore delle impostazioni cultura correnti dell'applicazione.
(/) Separatore di data. In alcune impostazioni locali è possibile usare altri caratteri per rappresentare il separatore di data. Il separatore di data separa il giorno, il mese e l'anno in cui i valori di data vengono formattati. Il carattere effettivo usato come separatore di data nell'output formattato è determinato dalle impostazioni cultura correnti dell'applicazione.
(%) Utilizzato per indicare che il carattere seguente deve essere letto come formato a lettera singola senza considerare le lettere finali. Usato anche per indicare che un formato a lettera singola viene letto come formato definito dall'utente. Per altri dettagli, vedere cosa segue.
d Visualizza il giorno come numero senza zero iniziale , ad esempio 1. Usare %d se si tratta dell'unico carattere nel formato numerico definito dall'utente.
dd Visualizza il giorno come numero con zero iniziale , ad esempio 01.
ddd Visualizza il giorno come abbreviazione , ad esempio Sun.
dddd Visualizza il giorno come nome completo, ad esempio Sunday.
M Visualizza il mese come numero senza zero iniziale ( ad esempio, gennaio è rappresentato come 1). Usare %M se si tratta dell'unico carattere nel formato numerico definito dall'utente.
MM Visualizza il mese come numero con uno zero iniziale , ad esempio 01/12/01.
MMM Visualizza il mese come abbreviazione , ad esempio Jan.
MMMM Visualizza il mese come nome completo del mese( ad esempio, January).
gg Visualizza la stringa punto/era , ad esempio A.D..
h Visualizza l'ora come numero senza zeri iniziali usando l'orologio di 12 ore ( ad esempio, 1:15:15 PM). Usare %h se si tratta dell'unico carattere nel formato numerico definito dall'utente.
hh Visualizza l'ora come numero con zeri iniziali usando l'orologio di 12 ore ( ad esempio, 01:15:15 PM).
H Visualizza l'ora come numero senza zeri iniziali usando l'orologio di 24 ore , ad esempio 1:15:15. Usare %H se si tratta dell'unico carattere nel formato numerico definito dall'utente.
HH Visualizza l'ora come numero con zeri iniziali usando l'orologio di 24 ore ( ad esempio, 01:15:15).
m Visualizza il minuto come numero senza zeri iniziali( ad esempio, 12:1:15). Usare %m se si tratta dell'unico carattere nel formato numerico definito dall'utente.
mm Visualizza il minuto come numero con zeri iniziali ( ad esempio, 12:01:15).
s Visualizza il secondo come numero senza zeri iniziali ( ad esempio, 12:15:5). Usare %s se si tratta dell'unico carattere nel formato numerico definito dall'utente.
ss Visualizza il secondo come numero con zeri iniziali (ad esempio, 12:15:05).
f Visualizza frazioni di secondi. Ad esempio, ff visualizza centesimi di secondi, mentre ffff visualizza dieci millesimi di secondi. È possibile usare fino a sette simboli f nel formato definito dall'utente. Usare %f se si tratta dell'unico carattere nel formato numerico definito dall'utente.
t Usa l'orologio di 12 ore e visualizza un A maiuscolo per qualsiasi ora prima di mezzogiorno; visualizza un P maiuscolo per qualsiasi ora tra mezzogiorno e 11:59. Utilizzare %t se questo è l'unico carattere nel formato numerico definito dall'utente.
tt Per le impostazioni locali che usano un orologio di 12 ore, visualizza un AM maiuscolo con qualsiasi ora prima di mezzogiorno; visualizza un PM maiuscolo con qualsiasi ora tra mezzogiorno e 11:59

Per le impostazioni locali che usano un orologio di 24 ore, non viene visualizzato nulla.
y Visualizza il numero di anno (0-9) senza zeri iniziali. Usare %y se si tratta dell'unico carattere nel formato numerico definito dall'utente.
yy Visualizza l'anno in formato numerico a due cifre con zero iniziale, se applicabile.
yyy Visualizza l'anno in formato numerico a quattro cifre.
yyyy Visualizza l'anno in formato numerico a quattro cifre.
z Visualizza l'offset del fuso orario senza zero iniziale , ad esempio -8. Usare %z se si tratta dell'unico carattere nel formato numerico definito dall'utente.
zz Visualizza l'offset del fuso orario con uno zero iniziale (ad esempio, -08)
zzz Visualizza l'offset del fuso orario completo (ad esempio, -08:00)

Esempio di codice legacy

Di seguito sono riportati esempi di formati di data e ora definiti dall'utente per December 7, 1958, 8:50 PM, 35 seconds:

Formato Visualizza
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

Note per gli sviluppatori di smart device

La risoluzione minima del tempo per un dispositivo è determinata dal produttore del dispositivo. Se la risoluzione dell'ora per il dispositivo è abbastanza grossolana, il carattere di formato f restituisce 0 quando viene eseguito su tale dispositivo.

Si applica a

Vedi anche