fredericopissarra Posted April 9, 2019 at 01:00 PM Share Posted April 9, 2019 at 01:00 PM Gente, Apenas uma dica rápida (a qual me foi chamada a atenção recentemente). Sempre achei que time() retornasse o número de segundos desde 1º de janeiro de 1970, às 0:00, na timezone local, mas não é isso que acontece... Ele retorna o número de segundos desde essa data no UTC+0 ou "horário de Greewich". Assim fica mais fácil calcular os vários horários por timezones, adicionando ou subtraíndo segundos do valor! []s Fred Link to comment Share on other sites More sharing options...
fredericopissarra Posted April 9, 2019 at 01:03 PM Author Share Posted April 9, 2019 at 01:03 PM Ainda mais: gmtime() não realiza quaisquer cálculos envolvendo timezone, já que time() retorna sempre UTC+0... mas, localtime() sim! Link to comment Share on other sites More sharing options...
Fernando Mercês Posted April 24, 2019 at 07:05 AM Share Posted April 24, 2019 at 07:05 AM Boa. Eu passei por isso nesse trecho do readpe, ao tentar extrair o timestamp de compilação de um binário PE: char timestr[40] = "(invalid)"; struct tm *t = gmtime((time_t *) &header->TimeDateStamp); if (t) strftime(timestr, sizeof(timestr), "%a, %d %b %Y %H:%M:%S UTC", t); No final, deixei exibindo em UTC-0 mesmo. ? Fonte: https://github.com/merces/pev/blob/master/src/readpe.c#L657 Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.