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.