datetime.parse e farlo funzionare con un formato specifico


141

Ho un datetime che ritorna da un file XML nel formato:

20080916 11:02

come in

yyyymm hh: ss

Come posso ottenere la funzione datetime.parse per raccogliere su questo? Vale a dire analizzarlo senza errori? Saluti

Risposte:


246
DateTime.ParseExact(input,"yyyyMMdd HH:mm",null);

supponendo che intendevi dire che i minuti seguivano le ore, non i secondi: il tuo esempio è un po 'confuso.

La documentazione di ParseExact descrive in dettaglio altri sovraccarichi, nel caso in cui si desideri convertire automaticamente l'analisi in Universal Time o qualcosa del genere.

Come menziona @ Joel Coehoorn , c'è anche la possibilità di usare TryParseExact , che restituirà un valore booleano che indica il successo o il fallimento dell'operazione - Sono ancora su .Net 1.1, quindi spesso lo dimentico.

Se è necessario analizzare altri formati, è possibile controllare le stringhe di formato DateTime standard .


11
Non dimenticare DateTime. TryParseExact ()
Joel Coehoorn,

Inoltre: Xml standard ha il suo formato DateTime molto specifico e gli strumenti .Net Xml dovrebbero essere in grado di leggerlo.
Joel Coehoorn,

In questo caso funziona bene con l'ultimo parametro come null ma per chiunque trovi questo CultureInfo.InvariantCulture altrimenti potresti avere problemi se il tuo datetime è qualcosa come "1823/01/01".
Todilo,

@JoelCoehoorn standard XML specific DateTime format?
Kiquenet,

10

Grazie per il suggerimento, l'ho usato per analizzare la mia data "20071122", avevo bisogno di aggiungere stili di dati, non ne ho usato nessuno e ha funzionato:

DateTime dt = DateTime.MinValue;

DateTime.TryParseExact("20071122", "yyyyMMdd", null,System.Globalization.DateTimeStyles.None, out dt);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.