Convertir epoch time en fecha y hora

Hola:

Estoy leyendo la fecha y hora de un servidor formato Epoch time (unix time), y quiero pasarlo a fecha y hora normal. ¿Sabéis si hay alguna librería para hacer esto de forma sencilla? Lo he tratado de hacer manualmente, convirtiendo los segundos en horas, días, etc., pero se me acumula un error y me falla en varios días o meses. La conversión que he visto es la siguiente, pero como digo, multiplicando el tiempo que ha transcurrido desde el uno de enero de 1970, con la siguiente tabla, aparece un error. He leído que no hay años bisiestos, por eso los años y meses en decimal, pero no se si irá por ahí el error.

1 hour 3600 seconds
1 day 86400 seconds
1 week 604800 seconds
1 month (30.44 days) 2629743 seconds
1 year (365.24 days) 31556926 seconds

Fuente: https://www.epochconverter.com/

Gracias!!

Basta que lo pregunte para que lo encuentre :slight_smile:

Librería: Time/TimeLib.h at master · PaulStoffregen/Time · GitHub

Ejemplo:

#include <TimeLib.h>

unsigned long t_unix_date1 = 1588731300;  //fecha en epoch que queremos convertir.

void setup() {
  Serial.begin(115200);
}

void loop() {

  Serial.print("t_unix_date1: ");
  Serial.println(t_unix_date1);
  printf("Date1: %4d-%02d-%02d %02d:%02d:%02d\n", year(t_unix_date1), month(t_unix_date1), day(t_unix_date1), hour(t_unix_date1), minute(t_unix_date1), second(t_unix_date1));
  delay(2000);
}

Saludos!!!