localtime STM32 tm_isdst

(Firma: egal) #7017214
Lesenswert?

Fragender schrieb:
> Mit der Funktion localtime kann ich problemlos auf einem STM32 die
> Uhrzeit formatieren, jedoch sagt das Feld tm_isdst, dass aktuell keine
> Sommerzeit ist obwohl so sein sollte.

Und wo kommt deine Uhrzeit her. Ein nackter STM32 kennt die eher nicht, 
sowas stellt normalerweise ein Betriebssystem bereit und dein C/C++ 
framework ruft diese dann dort ab. Oder hast du localtime selbst 
implementiert damit diese deine Hardware entsprechend bedient?

Irgendwie fehlen bei deiner Frage wohl einige Informationen...?
Gast #7017258
Lesenswert?

Ich hole über NTP die Uhrzeit und wandel den Zeitstempel mit localtime 
(welches ich nicht seölber implementiert habe) in ein tm* um.

Und dann ist tm_isdst stets 0 und es ist keine Sommerzeit.

Auch wenn ich tm_isdst auf -1 setze, kann ich mit einer erneuten 
Formatierung keine Umrechnung erzeugen:
1
tm* timeinfo = localtime(&u32Timestamp);
2
timeinfo->tm_isdst = -1;
3
time_t t = std::mktime(timeinfo);
4
timeinfo = localtime(&t);
Gast #7017268
Lesenswert?

Fragender schrieb:
> Ich hole über NTP die Uhrzeit und wandel den Zeitstempel mit
> localtime (welches ich nicht seölber implementiert habe) in ein tm* um.
> Und dann ist tm_isdst stets 0 und es ist keine Sommerzeit.
> Auch wenn ich tm_isdst auf -1 setze, kann ich mit einer erneuten
> Formatierung keine Umrechnung erzeugen:
> tm* timeinfo = localtime(&u32Timestamp);
> timeinfo->tm_isdst = -1;
> time_t t = std::mktime(timeinfo);
> timeinfo = localtime(&t);

https://www.cplusplus.com/reference/ctime/tm/

Wie wäre es mit RTFM und einem Wert > 0?
Werte < 0 signalisieren der Lib, dass DST Info nicht bekannt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren