Executando verificação de segurança...
3

Vou dar minha leiga opinião sobre o assunto.

Sempre acho interessante pontuar que data e hora são duas unidades distintas e com propósitos diferentes, mas que uma é ligada à outra. O conceito de "momento" é muito menosprezado por muitos programadores, deixando que o usuário advinhe a data a partir do que acontece no sistema.

Algo bacana que vejo alguns sistemas fazerem é armazenar a data e hora sempre relativa ao do servidor, e ao exibir no cliente é transformado na localidade do mesmo. É interessante ter uma API ou biblioteca dedicada à isso, pois é impossível advinhar quando um computador tá no horário de verão ou não somente com códigos.

Recentemente, o governo brasileiro aboliu o horário de verão. Não sei como vai ser esse ano. Não tem como prever, vai de uma circustância que está além de cálculos, física e etc.

Gostei do seu ponto que "não existe uma aritmética universal de datas", porque realmente não existe. Não existe uma unidade primitiva para tempo. Existe o conceito numérico para segundos, milisegundos, minutos, horas, etc, e você pode somar eles, mas o resultado sempre será uma representação de duranção ou ponto no tempo.

Dependendo da finalidade, você ajusta a precisão, descendo do milissegundo, microsegundo, nanosegundo, picosegundo, etc... vai da finalidade.

Carregando publicação patrocinada...
1

É interessante ter uma API ou biblioteca dedicada à isso, pois é impossível advinhar quando um computador tá no horário de verão ou não somente com códigos.

Eu diria para sempre usar uma API de datas, quando disponível. Claro que muitas linguagens não ajudam por não terem uma API decente, mas ainda sim é melhor do que tentar fazer tudo manualmente. Existem muitos corner cases e "pegadinhas" difíceis de tratar (muitas são até difíceis de sequer imaginar que podem acontecer).

No caso dos fusos horários e do histórico de alterações do horário de verão, é um trabalho hercúleo e infrutífero (e muito propenso a erros) tentar rastrear tudo manualmente. Hoje a maioria dos sistemas usa os dados do IANA Time Zone Database, e bem, veja na lista de discussão deles como é um trabalho insano manter todas essas informações em sincronia com as constantes alterações feitas no mundo todo.

Datas é um caso em que vale muito a pena ter uma API dedicada. Tem detalhes demais pra tratar, e mesmo as melhores bibliotecas não conseguem cobrir todos os aspectos.