Date formatting in C#

La tecnica detta "Date formatting" è quella tecnica che permette di effettuare un controllo sulla formattazione di una data in formato stringa. Il framework rappresenta le date con il tipo di dato DateTime; questo tipo di dato implementa l'interfaccia IFormattable che gli permette di essere appunto formattato in una stringa, attraverso uno degli overload del metodo ToString(), potendo scegliere tra vari tipi di formati.

Il formato scelto va definito passando al metodo ToString() una stringa di testo contenente il pattern corrispondente.

Ecco lelenco di tutti i pattern disponibili (prendendo come data il 18/09/2005 15:00):
 

Pattern Descrizione Esempio
d Short date 18/09/2005
D Long date Settembre 18, 2005
t Short time 15:00 PM
T Long time 15:00:00 PM
f Full date & time Settembre 18, 2005 15:00 PM
F Full date & time (long) Settembre 18, 2005 15:00:00 PM
g Default date & time 18/09/2005 15:00 PM
D Default date and time (long) 18/09/2005 15:00:00 PM
M Month day Settembre 18
r RFC1123 date Dom, 18 Set 2005 15:00:00 GMT
s Sortable date 2005-09-18T15:00:00
u Universal sortable, local time 2005-09-18 15:00:00Z
U Universal sortable Settembre 18, 2005 15:00:00 PM
Y Year Month Settembre, 2005
dd Day number 18
ddd Day short name Dom
dddd Full day name Domenica
gg Era D.C.
hh Hour (2 digits) 3
HH Hour (24h format) 15
mm Minute 00
MM Month number 09
MMM Month short name Set
ss Seconds 00

 
tt AM or PM PM
yy Year (2 digits) 05
yyyy Year 2005
zz Timezone offset (2 digits) -01
zzz Full timezone offset -01:00


Quindi, se per esempio volessimo stampare a video la data di oggi, ci basterebbe fare:

Console.Writeline(DateTime.Now.ToString("d"));


Nota: è bene ricordare che i valori della data e dellora dipendono dai settaggi di sistema.

Per comodità ho creato una classe sealed (chiamate DateFormatter) che permette di fare questo tipo di formattazione in maniera più comoda, senza doverci ricordare ogni volta il pattern utile ai nostri scopi; questa classe espone un metodo statico chiamato Format, che prende come parametri di input un oggetto di tipo DateTime rappresentante la data che vogliamo formattare, e un elemento di dell'enumeration DateFormatType, creata appunto per evitare di dover tenere a mente tutti i pattern, sia standard che custom, per la formattazione delle date.

Ecco quindi come lutilizzo della classe DateFormatter, può aiutare e velocizzare la scrittura del codice di noi programmatori:
 

Console.Writeline(DateFormatter.Format(DateTime.Now, DateFormatType.DefaultDateTime));



Link:
Standard DateTime Format Strings
Custom DateTime Format Strings
Interfaccia IFormattable
DateTime structure

 

Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Graziano
Hai qualche domanda da fare?