Pergunta

Eu tenho uma string que representa um valor de dados de dados e quero exercitar qual formato de string foi usado para criar a string.

Por exemplo
- Dado "Quarta -feira, 27 de janeiro de 2010" Eu espero "DDDD DD mmm aaaaaaaaaaaaaaaaa
- Dado "2010 01 27" Eu espero "AAAA MM DD"

Suponha que a data esteja próxima do DATETime.Now e esteja relacionada à CurrentCulture. Então, dado que temos a cultura EN-GB
- Dado "01 01 2010" Eu espero "dd mm aaaaaa"

Existe uma maneira simples de fazer isso?

Foi útil?

Solução

Você pode se dividir no espaço em branco para obter uma variedade de cordas, então você pode testar os elementos na matriz contra valores conhecidos para tentar adivinhar o formato

por exemplo, se você procurar por "quarta -feira" se achar que assume "dddd"

Se um número de quatro dígitos assumir

dias e meses podem ser um problema, você pode testar> 12 durante os dias, mas isso é muito ruim

Talvez você possa inferir o formato usando split de espaço em branco e depois DateTime.parse no orignal e teste contra uma versão formatada (usando o formato inferido) da data analisada para a igualdade

Outras dicas

A coisa mais simples a fazer é olhar A referência para seqüências de formatação de DateTime e elaborando -as.

Você pode usar a reflexão para obter isso ou usar desmontador (como Ildasm) para encontrar todas as strings usadas em uma montagem e adivinhe em quais são as string de formatação do dateTime.

Se desmontar, você pode procurar os dias da semana e uma corda começando com dddd, o que deve dizer como o original foi construído.

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