Pagina inicial » Codificação » Exibir data e hora como fazer certo

    Exibir data e hora como fazer certo

    Nós nos deparamos com eles datas e horas ... bem, todos os dias. Quando se trata da Web, você pode identificá-los em seus aplicativos móveis, em e-mails, em seus aplicativos de mensagens e em muitos outros lugares. No entanto, apesar de ver a data e a hora todos os dias e em todos os lugares, ainda temos que adotar um formato universal para isso.

    Por exemplo, se eu escrever 10/05/2015, você nunca pode ter certeza se esse "10" é o mês ou a data, a menos que eu lhe diga de onde eu sou. Às vezes o formato muda, outras vezes o idioma.

    É importante que, como desenvolvedores web, prestemos atenção à data e hora em que lidamos em nossos projetos, para que possamos atendê-los a diferentes habitantes geográficos sem qualquer conflito. Neste post estaremos discutindo o que evitar e o que abraçar quando se trata de exibir data-hora.

    Globalização

    Digamos que não queremos converter e exibir diferentes formatos de data e hora para diferentes espectadores em todo o mundo. O que podemos fazer? Escolhemos um formato global e seguimos com ele. Aqui é onde alguns padrões entram em jogo. Antes de chegarmos a isso, devo informar que o W3C recomenda que usemos o formato de data ISO 8601 com fuso horário UTC.

    ISO 8601

    A ISO 8601 descreve uma forma internacionalmente aceita de representar datas e horas usando números.

    E o formato para data completa é; AAAA-MM-DD, por exemplo: 2015-07-28

    AAAA = ano com 4 dígitosMM = mês de 2 dígitos (01 = janeiro, etc.)DD = dia de 2 dígitos (01 a 31)

    Para data e hora completas;AAAA-MM-DDThh: mm: ss.s, por exemplo: 2015-07-28T21: 15: 18: 45

    T = Para separar data e hora de acordo com a ISO 8601mm = minuto de 2 dígitos (00 a 59)ss = segundo de 2 dígitos (00 a 59)s = fração decimal de um segundo, 1 ou mais dígitos

    Observe que, como nenhum fuso horário foi mencionado no exemplo acima, deve-se presumir que a hora esteja no fuso horário local. Se você decidiu usar o fuso horário UTC, basta adicionar Z ao valor para denotar UTC

    Por exemplo: 2015-07-28T21: 15: 18.45Z

    Mas se você deseja exibir a hora local, então você pode adicionar um deslocamento de fuso horário para UTC para o valor nos formatos +hh: mm ou -hh: mm como necessário.

    Por exemplo: vamos supor 2015-07-28T21: 15: 18: 45 está no fuso horário EST (Eastern Standard Time), que fica 5 horas atrás do fuso horário UTC.

    Para representá-lo com offset UTC escrevemos 2015-07-28T21: 15: 18h45-05: 00 que é equivalente a hora UTC 2015-07-29T02: 15: 18.45Z.

    Novamente Z é anexado para representar que a data-hora exibida é em hora UTC.

    UTC vs. GMT

    Ambos são iguais, mas diferentes. Até agora você provavelmente já encontrou o GMT pelo menos uma vez; durante a configuração da data e hora no seu celular ou computador. É o fuso horário mais popular em todo o mundo, já que existe há mais tempo que a UTC.

    Enquanto alguns podem dizer que ambos são os mesmos, mas não são, a UTC é um sucessor do GMT e é mantida pela União Internacional de Telecomunicações. É aconselhável consultar a hora com base no UTC e não no GMT.

    Use o nome dos meses

    O padrão ISO usava apenas números na representação da data para evitar conflitos de idioma. Mas, se o conteúdo do seu aplicativo da Web for em inglês, você deve considerar escrever meses em inglês em vez de em números..

    Ao invés de 2015-07-28, 28 de julho de 2015 é mais fácil de entender por muitos e menos confuso.

    Localização

    Há momentos em que queremos ser muito específicos com nossos serviços e gostaríamos de representar a data e a hora em fusos horários e idiomas locais. Existem muitas bibliotecas e APIs disponíveis para desenvolvedores da web usarem e exibirem as datas e horas conforme a região de acesso.

    Você pode obter o idioma padrão do navegador interpretando o Aceitar Idioma cabeçalho de pedido ou através do navigator.language ou navigator.browserLanguage Objeto JavaScript, mas o melhor método é permitir que o usuário escolha uma localidade em seu aplicativo desde os primeiros caminhos não são muito confiáveis.

    Depois de ter a localidade, você pode formatar a hora da data de acordo com ela, por exemplo, usando o API de internacionalização, você pode formatar uma data usando toLocaleDateString em JavaScript, por exemplo, myDate.toLocaleDateString ('ko-KR') retornará uma data formatada no formato usado na Coréia por nativos de língua coreana.

    Horário de verão (DST)

    Em alguns países, o horário de verão é feito com o envio dos relógios por uma hora no verão para aproveitar a luz solar extra disponível. Esteja ciente do horário de verão para acompanhar os horários locais em seus serviços.

    Nenhum ano de dois dígitos

    Ao personalizar a data e a hora da localização, não use o formato de dois dígitos para o ano em nenhum momento. Nós já estamos no século 21. Usando anos como 64, 99 etc. será problemático no futuro. Se você já tem um sistema de ano de dois dígitos, considere alterá-lo.

    Ano bissexto e outros calendários

    Vamos terminar este post com algumas coisas diversas para lembrar ao lidar com datas. Se você não estiver usando nenhuma biblioteca ou API para datas e quiser lidar com elas por conta própria não recomendado, no entanto), não se esqueça de mostrar o 29 de fevereiro na entrada para os anos bissextos.

    Além disso, vale a pena notar que o Calendário gregoriano não é a única forma de calendário disponível e usado No mundo todo. Existem poucos calendários regionais que os locais seguem, especialmente quando se trata de festividades.

    Referências

    • União Internacional de Telecomunicações: estudo do Tempo Universal Coordenado (UTC) no ITU-R
    • ISO: ISO 8601 - formato de data e hora
    • Wikipedia: Tempo Universal Coordenado
    • Wikipedia: Horário de Verão
    • Wikipedia: Horário de Greenwich
    • Nota do W3C: Formatos de data e hora
    • Dicas do W3C: Use o formato de data internacional (ISO)