Pergunta

Em um 32 bit OS, com um processador Intel, Datetime v.g. 2009/02/17 12:00:00 Observe que ele é: MM / DD // aaaa

Em um de 64 bits do sistema operacional, com um processador AMD, Datetime v.g. 17-02-2009 00:00:00

Agora, quando eu tento analisar o primeiro formato, ele lança um erro na segunda plataforma. Isso significa - DateTime.Parse ( "2009/02/17 00:00:00") - gera um erro - não pode converter. Considerando que, na mesma plataforma, DateTime.Parse ( "17/2/2009 00:00:00") funciona! Isso significa DD / MM é bom, MM / DD não é.

O que está causando isso? O sistema operacional de 64 bits? O processador?

Como faço para me livrar do problema?

Foi útil?

Solução

próprios DateTimes não têm formatos. Você analisá-los ou formatá-los em strings. (É como números -.. Inteiros não são armazenados em hexadecimal ou decimal, eles são apenas números inteiros Você pode formatá-los em hexadecimal ou decimal, mas o valor em si é apenas um número)

O formato irá depender da cultura do sistema de funcionamento (ou, mais precisamente, a cultura da rosca, que é tipicamente o mesmo que o sistema operativo).

Pessoalmente eu gosto de definir explicitamente o formato que eu uso para qualquer análise ou formatação, a menos que eu estou realmente mostrando a string para o usuário e sei que a cultura já é apropriado.

Outras dicas

Verifique seus "formatos de data e hora" no painel de controle "Região e Idioma".

Além disso, se você quiser DateTime para gerar um formato específico, não apenas chamar ToString simples (), mas passá-lo um parâmetro indicando o formato desejado. Da mesma forma, se você sabe o formato da data que você está pedindo-lhe para analisar, chamar TryParseExact (), e dizer-lhe o formato que você está fornecendo.

Veja também Data padrão da MSDN eo formato da hora Cordas

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top