Cultura padrão mudança ASP.NET para formatação de data
-
06-07-2019 - |
Pergunta
Por alguma razão, o código ASP.NET no meu servidor está retornando agora um formato de dd / mm / aaaa em vez de MM / DD / AAAA quando eu uso < strong> DateTime.ToString ( "g") .
Ao invés de substituir todos os "g" seqüências de formato com uma seqüência de formato concreto ou argumento CultureInfo, há uma maneira eu posso simplesmente substituir, através da aplicação, o padrão de formato "data curta"?
A minha preferência é realmente "AAAA-MM-DD" como o formato padrão, mas eu posso viver com a MM centrado nos EUA / dd / aaaa, como todos os usuários estão nos EUA.
Esclarecimento:. Eu não quero mudar toda a cultura padrão, o que poderia impactar coisas como moeda e uso de decimais / vírgulas na formatação de números
Eu só quero substituir qualquer ToString ( "g") chamada para usar o formato de data 8824 ISO / IEC ( "AAAA-MM-DD").
Eu poderia procurar e substituir em todo o meu código para forçar um CultureInfo em cada ToString () chamada, mas isso não me parece a solução mais sustentável.
Minha solução atual é que eu defini um método estático para formatar uma data, e eu chamá-lo, em vez de ToString () em toda a minha base de código. Mas, novamente, se eu esquecer de fazê-lo em algum lugar no código, eu vou ter uma data pateta novamente.
Solução 2
Como definir a cultura não era uma opção, nem foi, dependendo das configurações regionais do servidor.
acabei escrevendo uma função de utilidade para a formatação de datas:
Public Shared Function FormatShortDate(ByVal d As Date) As String
If d=#1/1/0001# Then Return ""
If d=#1/1/1900# Then Return ""
'ISO/IEC 8824 date format
Return d.ToString("yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)
End Function
Eu chamo isso em todos os lugares que eu preciso para empurrar uma data para o usuário. Ele também lida com exibição de inadimplência ( "mágicos") datas.
Eu escrevi algumas funções similares para e FormatShortDateTime e FormatLongDateTime.
Outras dicas
Você pode definir a cultura padrão no web.config (nível de aplicação), a Directiva página ou diretiva de controle.
Eu tenho vários aplicativos onde as páginas mestras são criados para diferentes culturas, e as páginas e controles herdar de lá.
Você pode manipular o formato de data curto alterando a configuração nas configurações regionais no painel de controle no servidor.