Os computadores vão parar em 2038? (O problema Y2K38)
No final de 1999, o mundo temia o 'Bug do Milênio'. Esperava-se que computadores armazenando anos como dois dígitos (99) interpretassem 2000 como 1900, causando caos.
Agora, um problema semelhante, talvez mais sério, está se aproximando.
É o Problema do Ano 2038.
1. Unix Time
Como os computadores armazenam o tempo? A maioria dos sistemas usa o Unix Time.
Isso conta o número de segundos que se passaram desde 1º de janeiro de 1970, 00:00:00 (UTC).
Por exemplo, no momento em que escrevo isto, cerca de 1,7 bilhão de segundos se passaram desde 1970.
2. O Limite de 32 bits
O problema é que muitos sistemas e softwares mais antigos usam um Inteiro de 32 bits com sinal para armazenar esse valor.
O valor máximo que um inteiro de 32 bits pode conter é 2.147.483.647.
Convertido para Unix Time, isso corresponde exatamente a 19 de janeiro de 2038, 03:14:07 (UTC).
3. Quando Esse Dia Chegar
O que acontece 1 segundo após esse horário?
O número estourará seu valor máximo e voltará ao valor mínimo, -2.147.483.648.
O sistema interpretará esse horário como 13 de dezembro de 1901.
Isso pode causar:
- Falha nos cálculos de data do banco de dados.
- Sistemas de agendamento marcando compromissos no passado.
- Dispositivos embarcados ou servidores legados travando.
4. A Solução
A solução é simples, mas cara: estender a variável de tempo para 64 bits.
O valor máximo de um inteiro de 64 bits é de cerca de 9 quintilhões. Isso pode representar um período de tempo muito maior do que a idade do universo (cerca de 290 bilhões de anos), tornando-o efetivamente seguro para sempre.
Sistemas operacionais e linguagens modernos de 64 bits já usam tempo de 64 bits. A preocupação reside em dispositivos embarcados de 32 bits e código legado ainda em operação.
Conclusão
2038 parece distante, mas sistemas que lidam com contratos de longo prazo ou pensões já podem estar encontrando problemas.
Como desenvolvedor, vale a pena verificar se as variáveis de data em seu código são de 32 bits ou 64 bits. É o primeiro passo para evitar um desastre futuro.
Explore ferramentas relacionadas
Experimente estas ferramentas gratuitas do Pockit