Linux / Comando date: mostrar data, hora e formatos em UTC
date mostra a data e a hora atuais e permite escolher o formato de saída. Use um argumento iniciado por + para selecionar os campos e -u para consultar em Tempo Universal Coordenado (UTC), sem alterar o relógio nesses exemplos.
A saída padrão depende do fuso horário e da localidade, que controla convenções como nomes de meses e dias da semana. Para logs e scripts, escolha explicitamente o formato e o fuso: uma sequência de números sem indicação de fuso pode ser ambígua ao comparar sistemas diferentes.
Sintaxe e preparação
date [opções] [+formato]
Os colchetes descrevem argumentos opcionais; não são digitados. Abra um terminal no sistema que deseja consultar. Os exemplos seguem o GNU date; confira date --version, date --help e man date na instalação utilizada. Opções como -d são extensões GNU e podem ser diferentes em outros ambientes Unix.
A forma apresentada consulta e formata a hora. O comando também tem modos de ajuste do relógio, como -s e um argumento numérico de data sem o sinal +. Não use esses modos para apenas mudar a aparência da saída.
Mostrar a data e a hora atuais
date
Sem opções nem formato, o comando mostra a data e a hora segundo a configuração disponível. O dia da semana, o mês e a identificação do fuso podem ter aparência diferente entre máquinas e localidades. Essa saída é conveniente para leitura humana, mas não deve ser analisada por um script supondo sempre o mesmo idioma ou posições fixas.
Usar ano, mês e dia em um formato definido
date +%Y-%m-%d
O sinal + introduz o formato. %Y representa o ano, %m o mês e %d o dia do mês; os hífens são texto literal. Para uma data como 28 de setembro de 2026, a forma resultante é 2026-09-28. Ao consultar a data atual, o valor acompanha o momento e o fuso da execução.
Esse formato é útil em nomes de arquivos e rótulos de logs, mas somente a data não é um identificador exclusivo: várias execuções no mesmo dia produzem o mesmo valor. Confirme a saída no terminal antes de usá-la em uma rotina que crie arquivos.
Mostrar uma marca de tempo em UTC
date -u +%Y-%m-%dT%H:%M:%SZ
Esse formato reúne data e hora, com T separando as duas partes. %H é a hora de 00 a 23, %M representa minutos e %S representa segundos. Não confunda %m, que é mês, com %M, que é minuto.
O Z final é um caractere literal usado aqui para indicar UTC, e é a opção -u que faz a consulta usar esse fuso. Se você retirar -u e mantiver Z em uma consulta de hora local, poderá rotular a saída incorretamente. Para mostrar um deslocamento numérico no GNU date, use um formato com %:z, como date '+%Y-%m-%dT%H:%M:%S%:z'.
UTC facilita a comparação de registros entre fusos, mas não corrige relógios atrasados ou adiantados. Se dois servidores discordarem sobre o instante atual, a sincronização dos relógios precisa ser verificada separadamente.
Entender aspas, valores ilustrativos e datas fixas
date -u '+%Y-%m-%d %H:%M UTC'
As aspas fazem o shell entregar o formato completo como um único argumento, mesmo com espaços. UTC é texto literal nesse formato; a opção -u define o fuso da consulta. O comando usa a hora atual a cada execução. Esta linha é apenas uma ilustração do formato:
2026-09-28 00:00 UTC
Para reproduzir exatamente a linha ilustrativa com GNU date, forneça essa data como entrada somente para exibição: date -u -d '2026-09-28 00:00:00 UTC' '+%Y-%m-%d %H:%M UTC'. A opção -d interpreta o instante informado em vez de consultar agora; ela não ajusta o relógio. Informar o fuso na entrada evita depender do fuso padrão ao interpretar esse exemplo fixo.
As aspas do shell não fazem parte do texto exibido. Se forem omitidas no formato com espaços, o shell pode separá-lo em vários argumentos e date pode responder com um erro de argumento extra. Confira a mensagem e o status de saída imediatamente após o comando; um valor diferente de zero indica falha.
O manual de invocação do GNU date explica a influência de TZ e da localidade. A seção de opções de date distingue a interpretação com -d da alteração com -s.
Opções e formatos principais
| Opção ou formato | Resultado |
|---|---|
+%Y-%m-%d |
Mostra ano, mês e dia. |
+%H:%M:%S |
Mostra hora, minuto e segundo. |
-u |
Usa UTC; nos exemplos de consulta, muda a referência da saída. |
-I |
No GNU date, usa o formato ISO 8601, com precisão de data por padrão. Não inclui automaticamente a hora. |
-d 'texto' |
No GNU date, interpreta a data de entrada e a mostra, em vez de usar o instante atual. |
O manual date(1) do GNU Coreutils apresenta os campos completos. %z produz um deslocamento como +0900 e %:z inclui os dois-pontos, como +09:00. %Z mostra uma abreviação; uma abreviação isolada nem sempre comunica o contexto de fuso tão claramente quanto um deslocamento numérico.
Fuso da consulta e limites da verificação
Normalmente date segue a variável de ambiente TZ, quando definida, ou a configuração padrão do sistema. Para consultar UTC em um único processo no Bash, você também pode usar TZ=UTC0 date '+%Y-%m-%d %H:%M %:z'. Esse prefixo vale para aquele comando; ele não reconfigura o fuso do sistema nem exporta uma nova configuração permanente para o shell.
Identificadores regionais de fuso dependem do suporte e dos dados disponíveis no ambiente. Confira o deslocamento na saída, em vez de presumir que um identificador escrito no comando tenha sido aplicado corretamente. A localidade também importa ao usar nomes de meses ou dias: para formatos automatizados, prefira campos numéricos e uma entrada de data sem ambiguidade.
Na verificação disponível, GNU date 8.32 no Bash 5.3.9 do Git para Windows, com LC_ALL=C, os quatro comandos dos exemplos retornaram 0. A entrada fixa com -d reproduziu 2026-09-28 00:00 UTC, e TZ=UTC0 produziu deslocamento +00:00. Uma data inválida e o formato com espaços sem aspas retornaram 1. A consulta adicional com Asia/Seoul não aplicou o deslocamento esperado nesse ambiente, no qual o arquivo regional consultado em /usr/share/zoneinfo não estava disponível para leitura. Por isso, essa consulta não valida a conversão regional em Linux; não houve execução nativa do Linux nem alteração de relógio, fuso global ou sincronização.
Uma mudança real do relógio pode afetar autenticação, logs e tarefas agendadas. A formatação com + e a consulta UTC com -u, sem os modos de ajuste, servem para observar o relógio existente. Para investigar uma hora incorreta, distinga primeiro erro de fuso, de formato e de sincronização.
Pergunta frequente
Qual fuso horário date usa na saída?
Em geral, usa TZ quando essa variável está definida ou o padrão do sistema quando não está. Nos exemplos de consulta, -u seleciona UTC. Definir somente o texto UTC ou Z no formato não converte a hora: a opção ou o fuso da consulta deve corresponder ao rótulo exibido.




