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

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 .


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);
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.