Redazione
a- a+

Formattare date e ore con ASP.NET

Vediamo come fare a formattare date ed orari con ASP.NET . Codici ed esempi.

Con ASP.NET è possibile formattare in maniera rapida date e orari. La formattazione è il processo di conversione di una variabile da tipo nativo in una rappresentazione di stringa. Ogni volta che si visualizza una variabile di tipo DateTime o una variabile numerica che esprime una data o un orario, ASP.NET formatta tale variabile da tipo nativo in string impostando le proprietà di stampa come definite dall’utente.

Ci sono diversi modi per formattare una variabile DateTime o numerica. Il primo modo consiste nell’utilizzare il metodo ToString, che sostituisce il valore nativo in stringa. Specificamente:

  • DateTime:DateTime.ToString () converte il valore DateTime  in un formato stringa utilizzando la lingua corrente. DateTime.ToString (stringa) converte il valore della DateTime a una rappresentazione in formato stringa utilizzando la lingua corrente e la stringa di formato specificato come da tabella sottostante.
  • DateTime.ToString (IFormatProvider) converte il valore della DateTime a una rappresentazione in formato stringa utilizzando le impostazioni cultura specificate e la stringa "G" di formato (si veda tabella).
  • DateTime.ToString (stringa, IFormatProvider) converte il valore della DateTime a una rappresentazione in formato stringa utilizzando le impostazioni cultura specificate e la stringa di formato specificato (vedi tabella).

Variabili numeriche - interi, doppie, decimali, e così via - hanno lo stesso overload del metodo ToString.

Può essere eseguita anche la formattazione utilizzando il metodo String.Format. Il metodo String.Format accetta come input una stringa di formato che contiene una serie di segnaposto, seguito dai valori. Il segnaposto assume la forma {0}, {1}, e così via. Si può includere una stringa di formato in questo modo: {0:}.

Il  codice seguente mostra come usare il metodo String.Format con tre segnaposto:

customerName stringa = "Tito";subtotale = 245,13;taxTotal decimale = 18,94;/ / Output: Tito, il vostro ordine totale iva inclusa è € 245,13. Iva 18,94 euro.stringa = string.Format ("{0}, il vostro ordine totale iva inclusa è {1: c} {2 Iva : c}.." customerName, subtotale, taxTotal);

Nell’esempio qui sopra, il metodo String.Format utilizza la lingua corrente. Opzionalmente si possono fornire le impostazioni cultura come primo parametro al metodo String.Format.

Ci sono 15 stringhe di formato standard di data e ora definite nel. NET Framework. La tabella seguente mostra le stringhe di formato standard:

Descrizione

Esempio

Output

Data corta (d)

DateTime.Now.ToString("d")

18/10/2011

Data lunga (D)

DateTime.Now.ToString("D")

Lunedi, 18,Ottobre 2011

Full date/time - short time (f)

DateTime.Now.ToString("f")

Lunedi, 18,Ottobre 2011 12:39 AM

Full date/time - long time (F)

DateTime.Now.ToString("F")

Lunedi, 18,Ottobre 2011 12:39:46 AM

General date/time - short time (g)

DateTime.Now.ToString("g")

18/10/2011 12:39 AM

General date/time - long time (G)

DateTime.Now.ToString("G")

18/10/2011 12:39:46 AM

Giorno/mese (M)

DateTime.Now.ToString("M")

18 ottobre

Round-trip date/time (O)

DateTime.Now.ToString("O")

2011-10-18T15:39:46.4804000-08:00

RFC 1123 pattern (R)

DateTime.Now.ToString("R")

Lun, 18 Ott 2011 15:39:46 GMT

Sortable date/time pattern (s)

DateTime.Now.ToString("s")

2011-10-18T15:39:46

Short time (t)

DateTime.Now.ToString("t")

3:39 PM

Long time (T)

DateTime.Now.ToString("T")

3:39:46 PM

Universal sortable date/time (u)

DateTime.Now.ToString("u")

2011-11-18 15:39:46Z

Universal full date/time (U)

DateTime.Now.ToString("U")

Lunedì, 18 ottobre, 2011 11:39:46 PM

Anno/mese (Y)

DateTime.Now.ToString("Y")

Ottobre, 2011

 

La lingua dell’output delle stringhe dipende dalla culture. Per esempio, per 18 Ott 2011 utilizzando il modello di data breve visualizza 2011/10/18 quando si utilizza la culture it-IT, tuttavia, se si utilizza culture inglese (en-US) visualizza 2011/18/10, la culture tedesca (Germania) mostra 2011/18/10, e la culture giapponese 2011/10/18.

Se non si specifica in modo esplicito una culture la formattazione del .NET Framework utilizzerà le impostazioni culture correnti. C’è una varietà di date personalizzate e stringhe di formato tempo, che consentono allo sviluppatore dir definire la propria formattazione. La tabella seguente mostra solo alcuni esempi di come possono essere impostate.

Descrizione

Esempio

Output

Giorno, nome del mese abbreviato, anno

DateTime.Now.ToString("d MMM yyyy")

18 Ott  2011

Nome del giorno della settimana più il  giorno del mese ed il nome del mese

DateTime.Now.ToString("dddd, MMMM d")

Lunedi’, 8 Ottobre

Giorno/Mese/Anno, usando esattamente due cifre per ciascuno

DateTime.Now.ToString("dd/MM/yy")

18/10/11