Posted on julho 6, 2020
Como converter timestamp Unix para DateTime?
Estou desenvolvendo um projeto pessoal que, entre outras coisas, envolve um bot do Telegram. E, na hora de pegar os updates desse bot, me deparei com o seguinte retorno para um campo de data: Date the message was sent in Unix time. Na hora, não dei muita atenção. Mas quando efetivamente estava desenvolvendo e encontrei com um int ENORME na resposta da request que eu fiz, fui lá procurar o que era esse tal de Unix timestamp e como convertê-lo para um DateTime.
O que é Unix Timestamp?
O Unix Timestamp é uma maneira de rastrear tempo como um total de segundos que já passaram. A contagem começa no Unix Epoch, em 1º de Janeiro de 1970, no fuso UTC. Portanto, o Unix Timestamp é somente o número de segundos que passaram entre uma data em particular e o Unix Epoch. É importante dizer que esse ponto no tempo tecnicamente não muda não importa onde você esteja no mundo. Isso é muito útil para sistemas computacionais para rastrear e ordenar informações datadas em aplicações dinâmicas e distribuídas, tanto online quanto no lado do cliente.
— unixtimestamp.com (Tradução livre)
Ou seja, bastava 10 minutos de Google para eu perceber que a resolução do meu problema era simples: era só adicionar o número de segundos que eu tinha recebido na data do Unix Epoch.
Mas eu fui procurar isso no Google naquele momento? Claro que não, né. Vim procurar agora. Antes de mais nada, eu fui no Stack Overflow e achei a solução.
Como eu disse ali em cima, a solução é bem simples: precisamos somente criar a data do Unix Epoch dentro do nosso programa e a adicionar os segundos. E as linguagens já facilitam muito isso pra gente. Vou deixar aqui a maneira que eu fiz (em C#).
private DateTime DateTimeParser(double unixTimeStamp) { //Date time in Unix DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc); return dateTime.AddSeconds(unixTimeStamp).ToLocalTime(); }
Duas linhas e o problema está resolvido! 😁 Espero que te ajude também e até a próxima!
Pingback: Um novo projeto pessoal: o Hey, Pepita bot! - Olivia Mattiazzo %