datetime.parse e fazê-lo funcionar com um formato específico

141

Eu tenho um datetime voltando de um arquivo XML no formato:

20080916 11:02

como em

aaaammm hh: ss

Como posso obter a função datetime.parse para entender isso? Ou seja, analisá-lo sem erro? Felicidades

anonym0use
fonte

Respostas:

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

supondo que você quis dizer que os minutos seguiram as horas, não segundos - seu exemplo é um pouco confuso.

A documentação ParseExact detalha outras sobrecargas, caso você deseje que a análise seja convertida automaticamente para o Horário Universal ou algo assim.

Como @ Joel Coehoorn menciona, também há a opção de usar o TryParseExact , que retornará um valor booleano indicando sucesso ou falha da operação - eu ainda estou no .Net 1.1, então geralmente esqueço esse.

Se você precisar analisar outros formatos, consulte as Strings de formato de data e hora padrão .

Blair Conrad
fonte
11
Não se esqueça de DateTime.TryParseExact ()
Joel Coehoorn
Além disso: o Xml padrão possui seu próprio formato DateTime muito específico, e as ferramentas .Net Xml devem poder lê-lo.
Joel Coehoorn
Nesse caso, ele funciona ok com o último parâmetro como nulo, mas para quem encontrar este CultureInfo.InvariantCulture, caso contrário, você poderá obter problemas se a data e o horário forem algo como "1823/01/01".
Todilo
@JoelCoehoorn standard XML specific DateTime format?
27518 Kiquenet
10

Obrigado pela dica, eu usei isso para obter minha data "20071122" analisada, eu precisava adicionar estilos de dados, não usei nenhum e funcionou:

DateTime dt = DateTime.MinValue;

DateTime.TryParseExact("20071122", "yyyyMMdd", null,System.Globalization.DateTimeStyles.None, out dt);
bert
fonte