O que é GMT e por que ainda ouve-se isso em todo lugar
GMT significa Greenwich Mean Time, ou Hora Média de Greenwich. É o padrão temporal criado lá pelos antigos, baseado na rotação da Terra em relação ao observatório de Greenwich, em Londres. A linha do tempo zero (UTC+0) passa literalmente por ali. Quando você vê algum sistema antigo indicando uma zona horária como "GMT", na prática está olhando para UTC+0. O problema é que muita gente trata GMT e UTC como sinônimos. Tecnicamente não são exatamente a mesma coisa, embora na vida real a diferença entre eles seja de frações de segundo. UTC é medido por relógios atômicos. GMT é medido pela posição do sol. A Convenção Internacional de Horários adotou UTC como padrão em 1972, e GMT entrou num status meio morto — ainda aparece em nome de fusos, em documentação de software legado, e em conversas de gente que não atualiza desde 2005.
Entendendo o gmt significado na prática
No dia a dia, se alguém te manda um relatório dizendo "horário GMT", assume UTC+0. Se o seu sistema mostra 14:00 GMT, significa 14:00 em Londres, Lisboa, Accra, etc. Sem horário de verão ativado. Com horário de verão, países como o Reino Unido viram BST (British Summer Time), que é UTC+1. Aí começa a confusão, porque o sistema muitas vezes continua exibindo "GMT" mesmo quando a hora local mudou. Já vi isso acontecer com servidores de log que ficam mostrando timestamps errados por semanas porque o responsável não percebeu a mudança de fuso. Uma vez, num projeto meu, migrei um banco de dados de horários de UTC para UTC+0 explícito, e as queries de agrupamento por data simplesmente quebraram. Os timestamps de inverno estavam certos, mas os de verão tinham sido armazenados com timezone incorreto, então uma query que fazia GROUP BY DATE(timestamp) retornava dados duplicados — o mesmo evento aparecia em dois dias diferentes só porque o fuso não foi ajustado durante a inserção. A correção foi rodar um UPDATE massivo com a função AT TIME ZONE do PostgreSQL, que converte tudo corretamente. Demorou cerca de 4 horas para rodar num banco de 12GB, mas resolveu.
👉 Clique no botão abaixo para saber mais sobre o assunto!
O que muita gente não sabe é que GMT não tem variação sazonal própria. O horário de verão é uma convenção local, não parte do GMT. Ou seja, quando a Inglaterra entra no BST, a hora em GMT não muda. Ela só muda o offset que os britânicos usam no dia a dia. Se você está construindo um sistema que lida com fusos, a recomendação é nunca confiar em strings como "GMT". Use nomes de zona IANA, como Europe/London. A string "GMT" não carrega informação de horário de verão, e isso gera bugs silenciosos que aparecem só no verão. Outro detalhe que quase ninguém menciona: alguns sistemas de aviação e marinha ainda usam GMT como referência operacional, mas com uma diferença importante. Neles, GMT é tratado como uma unidade de medida contínua, sem os ajustes de DST. Isso é útil quando você precisa de estabilidade — não quer que um voo mude de horário porque o fuso local decidiu mudar o relógio. Para APIs modernas, a recomendação prática é converter tudo para UTC nas camadas internas e formatar para o fuso do usuário só na apresentação. Qualquer coisa diferente disso vai te dar trabalho mais tarde.
Se você quer uma tabela de conversão rápida, a maioria dos fusos europeus e africanos ocidentais está em UTC+0. Lagos, Dakar, Acra, Monróvia — todos usam GMT/UTC no inverno. Dublim e Lisboa também, com DST. O Japão está em UTC+9, Brasil em UTC-3 (ou -2 no horário de verão, que já acabou há anos). Essas informações estão disponíveis em qualquer biblioteca de fuso horária moderna, então não precisa decorar. Use o padrão, documente o que você escolheu, e não tente ser criativo com fusos. Se precisar de uma referência confiável, o site do IANA TZ Database (tz.database) é a fonte primária. Ele é usado pelo Linux, macOS, Java, Python, e praticamente todo sistema moderno. A Wikipedia também tem uma página boa sobre GMT com histórico, mas o que eu recomendo mesmo é o arquivo zone.tab do próprio repositório, que é a fonte da verdade sobre quais regiões usam qual offset e quando.