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.