Domanda

Ho una stringa che rappresenta un valore DataTime, e voglio allenamento quale formato stringa è stato utilizzato per creare la stringa.

Per esempio
- Dato "Mercoledì 27 gennaio 2010" Mi aspetto "dddd dd MMM yyyy"
- Dato "2010 01 27" Mi aspetto "AAAA MM GG"

Si supponga che la data è vicino a DateTime.Now e riguarda la CurrentCulture. Quindi, dato che abbiamo it-IT cultura
- dato "01 01 2010" Mi aspetto "MM yyyy dd"

C'è un modo semplice per fare questo?

È stato utile?

Soluzione

si potrebbe dividere in spazi bianchi per ottenere un array di stringhe allora si potrebbe testare gli elementi dell'array contro i valori noti per cercare di indovinare il formato

es. se si cerca "Mercoledì" se lo trovate assumere "dddd"

se un numero di quattro cifre assumere aaaa

giorni e mesi potrebbe essere un problema, si potrebbe verificare per> 12 per i giorni ma che è piuttosto male

forse si potrebbe dedurre il formato utilizzando scissione spazi poi DateTime.Parse sulla orignal e il test contro una versione formattata (utilizzando il formato infered) la data analizzato per l'uguaglianza

Altri suggerimenti

La cosa più semplice da fare è guardare la di riferimento per datetime formattazione stringhe e lavoro fuori.

Si può essere in grado di utilizzare la riflessione al fine di ottenere questo, o usare disassembler (come ILDASM ) per trovare tutte le stringhe utilizzate in un assieme e indovinare quali sono stringa di formattazione datetime.

Se disassmbling, è possibile cercare i giorni della settimana e per una stringa che inizia con dddd, che dovrebbe dirvi come è stato costruito l'originale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top