No Canadá, todos estão familiarizados com o formato da data YYYY-MM-DD
. Na Europa ou na África do Sul, eles preferem DD-MM-YYYY
. Existem usuários da África do Sul que se confundem com o YYYY-MM-DD
formato da data. Existe uma maneira de lidar com esta situação?
Eu estava pensando em usar o seguinte formato de método para todos: Feb 02, 2011
websites
date-format
formatting
standards
ambiguity
Thierry Lam
fonte
fonte
DD-MM-YYYY
." Exceto, por exemplo, na Hungria (YYYY.MM.DD
) ou na Finlândia (DD.MM.YYYY
), ou ... Desculpe, a realidade é confusa :-(prefix_1999_12_23_16_45_53.ext
. Razão principal: isso foi extremamente fácil de classificar, PESQUISAR e analisar. Ao pesquisar, você realmente deseja começar primeiro com a unidade mais significativa para alcançar a meta o mais rápido possível. Esse tipo de string é até compatível com árvores binárias. O laboratório foi dominado por estudantes da Europa, mas acho que isso era apenas senso comum, se não um padrão científico. No entanto, em um país em que cresci, usaríamos DD-MM-AAAA para uso diário. Raciocínio: quando você acorda, qual é a primeira parte que você quer saber?Respostas:
A parte ambígua é diferenciar dia e mês se eles são representados por números.
02/03 significa 03 de fevereiro ou 02 de março?
Alterando o identificador do mês de seu número com seu nome, você remove essa ambiguidade. Para responder sua pergunta, sua variante
Feb 02, 2011
parece ser uma boa solução.Ainda existe um problema em potencial com o número do ano, se você o escrever apenas com 2 dígitos, mas é fácil de corrigir (use 4).
fonte
Não . Não existe um formato de data reconhecido universalmente.
ISO 8601 Define um padrão internacional para formatos de data. Como tal, é provavelmente o melhor compromisso. Mas, como você diz, os usuários nem sempre gostam desse formato.
A única solução correta é apresentar um formato diferente para diferentes países. Você pode achar que existe uma biblioteca padrão para isso, se a linguagem de programação escolhida tiver um número significativo de seguidores.
fonte
Você deve usar as informações da cultura para isso. Ou pelo menos o formato de exibição local.
Em JavaScript, você pode usar o método toLocaleString para a classe Date .
Para C #, você pode usar a cadeia de caracteres de formato ao usar o ToString .
Uma pesquisa rápida no Google deve mostrar como usar a cultura no idioma de sua escolha.
fonte
Eu aceitaria AAAA-MM-DD (e sempre escreveria anos com quatro dígitos e meses e dias com dois dígitos). AAAA-DD-MM, pelo que sei, é incomum ou raro, portanto, o formato AAAA-MM-DD é o que tem menos ambiguidade e, eventualmente, seus usuários irão entender. Além disso, você obtém a vantagem de classificação trivial.
fonte
Você pode dar a cada usuário seu próprio código de idioma, que renderiza datas e outras informações de acordo com suas preferências locais?
fonte
Muitas vezes você pode configurar o código do idioma e usar o I18n na maioria das estruturas.
fonte
No caso geral, você precisará especificar o formato e o valor. Esta é a única maneira de evitar toda e qualquer confusão. Por exemplo, você pode dizer "2011-02-02 (AAAA-MM-DD)". No entanto, o custo é de simplicidade e legibilidade. Portanto, conheça seu público.
Você pode, é claro, dizer "A seguir, todas as datas estão no formato AAAA-MM-DD ...." Então "02-02-2011" que aparecer mais tarde será inequívoco. Isso pode ser mais agradável, mas, novamente, conheça seu público.
fonte
Essa sugestão é provavelmente inútil, mas vi meses escritos como algarismos romanos. Claro, 3 / XI / 2011 pode ser 11 de novembro ou 3 de março, mas acho que a primeira interpretação é mais natural.
fonte
Eu diria que depende do que você está fazendo, de quanto controle você tem sobre a entrada e a armazena em algum lugar?
Para armazenamento, eu usaria o que foi sugerido por Mike Dunlavey:
Ele não deixou isso como resposta, então eu vou.
Mais uma coisa: confira a seguinte captura de tela de como inserir a data de validade do CC: http://www.ubercart.org/files/credit_card_checkout.jpg
O melhor deste exemplo é que ele não faz você pensar. Ele usa números e nomes para o mês. Eu consideraria usar algo semelhante para a entrada. Para o mês, inclua o número e o nome localizado. Para o ano e o dia, use as caixas numéricas Para cima / Para baixo ou Combinado. Então, o controle do calendário também parece bacana.
Como eu disse, depende. Para armazenamento: se estiver usando um banco de dados, verifique se ele já fornece um bom formato de dados inequívoco. Se estiver usando algum outro método, veja se "AAAAMMDDHHMMSS onde a hora está no UTC" ajuda. Para apresentá-lo ao usuário - leve em consideração quais países / localidades podem estar envolvidos e escolha o tipo mais direto de representação "Não me faça pensar". Considere também fornecer uma opção.
Por fim, confira alguns produtos interessantes que já fazem algo semelhante e tente descobrir como eles fazem isso.
fonte
Não há formato universal de data e hora para os usuários finais do site. Também não há um valor único de data e hora porque o valor é diferente por fuso horário do cliente. Você deve usar a globalização - sua segmentação de formatos de dados, hora, moeda, calendário, nubmer com base na cultura do usuário (pode ser recebida de idiomas aceitos transmitidos pelo navegador do usuário ou por chave implementada diretamente no seu aplicativo). Algumas APIs (por exemplo, .NET) têm suporte direto para esses recursos.
Para armazenar data e hora no banco de dados, use o formato universal - UTC (horário universal das coordenadas).
fonte
É lamentável que toda a inteligência no mundo da computação internacional não possa quebrar essa porca.
Nem a Microsoft nem outros fornecedores consideraram adicionar uma máscara de data que faria o Mês parecer preenchido com zero, como o dia, mas com três dígitos. A adoção da prática ajudaria a promover uma nova série de formatos de data modificados, matematicamente equivalentes, mantendo fácil identificação e distinção em qualquer um dos layouts de data tradicionais. Isso é:
0MM-DD-AAAA, por exemplo, 002-03-2016 para Feb 03,2016
DD-0MM-AAAA, por exemplo, 03-002-2016 para 03 de fevereiro de 2016
AAAA-0MM-DD, por exemplo, 2016-002-03 para 2016-02-03
AAAA-DD-0MM, por exemplo, 2016-03-002 (se alguém quiser usá-lo!)
Parece muito fácil corrigi-lo desta maneira ... Acho que simples simplesmente não vende bem.
fonte