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 ![]()
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.