A surpreendente luta para obter um tempo de época UNIX a partir de uma string UTC em C ou C++
2025-01-19

Este artigo explora as complexidades de converter strings de tempo UTC em timestamps Unix em C/C++. O autor descobre comportamentos inesperados nas funções de manipulação de tempo POSIX em várias bibliotecas e linguagens C. O foco está no uso das funções `strptime()`, `mktime()` e `timegm()`, destacando problemas com o horário de verão e localidades. São fornecidas soluções, incluindo o uso de `timegm()` para horários UTC e o aproveitamento de streams C++ para contornar problemas de localidades. O artigo conclui recomendando bibliotecas de manipulação de tempo mais robustas disponíveis em C++20 e posterior, como a biblioteca tz de Howard Hinnant.
Desenvolvimento
Manipulação de Tempo