Oggi, il giorno dopo "The date of the beast", mi sono
ritrovato a dover fare il parsing
di una data in formato custom (ggmmdddd)
proveniente da un file di testo "a larghezza fissa".
Ebbene si, nel 2006
esistono ancora sistemi che utilizzano questo formato (in luogo del migliore
XML).
Lo snippet che leggete di seguito, frutto di una mia mezz'oretta di ricerche,
non fa altro che creare un nuovo DateTimeFormatInfo a partire dalla
culture del thread in cui gira il nostro codice.
A tale DateTimeFormatInfo e'
stato modificato il pattern del formato della LongDate in modo che
riflettesse il formato che vogliamo parsare.
Infine, si e' utilizzato il metodo statico ParseExact, passando come
secondo parametro (stringa di formato) "D" ovvero il token che
rappresenta il formato della data "lunga".
Il terzo parametro, infine, e'
l'istanza della classe DateTimeFormatInfo.
L'elenco dei token disponibili e' presente nella pagina di MSDN relativa al
DateTimeFormatInfo (che consiglio vivamente di andare
a guardare).
L'argomento e' vasto e sicuramente ho sorvolato con troppa leggerezza
l'argomento...ma magari lo snippet potrebbe essere utile a qualcuno.
DateTimeFormatInfo dti = new CultureInfo(Thread.CurrentThread.CurrentCulture.ToString(),false).DateTimeFormat;
dti.LongDatePattern="ddmmyyyy";
_fieldValue = DateTime.ParseExact((string)value,"D",dti);
powered by IMHO 1.3