Come convertire l'ora in stringa da OpenWeather

Ciao volevo convertire l'ora dell'alba e tramonto proveniente dalla libreria OpenWeather in stringa per poterla visualizzare.
Il valore dell'orario è espresso come intero.
"sunrise": 1526960448, uint32_t sunrise;
if (currentKey == "sunrise") {
this->data->sunrise = value.toInt();
Qualcuno mi può dire come fare?
Grazie

@beppevr ti quoto la risposta dell'admin da un altro post, corri a fare la presentazione :wink:

Grazie

FIgurati...

Tornando al tuo problema, il datetime restituito da OpenWeather è in formato Unix Time Timestamp ovvero il numero di secondi trascorsi dal 01/01/1970.

Per convertirlo in una stringa "human readable" puoi usare la funzione C standard strftime.
Qualcosa del genere per capirci:

  time_t epochTime = value.toInt();
  struct tm hrTime= *localtime(&epochTime );

  char buffer [80];
  strftime (buffer, 80, "%D %X", &hrTime);
  Serial.println (buffer);

Presumendo che tu stia usando una MCU dotata di connettività internet tipo ESP32:

Grazie veramente, finalmente funziona, ti volevo chiedere se volessi solo l'ora in stampa e non la data dovrei cambiare questa riga
strftime (buffer, 80, "%D %X", &hrTime)
con
strftime (buffer, 80, "%X", &hrTime)

corretto?

Esatto, se apri il link che ho messo riguardo alla funzione strftime()ci sono tutti i tipi di format specifiers che puoi usare.

Molto gentile

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.