Std ist Müll
-
So ich habe mich abgeregt. Der time_t Datentyp ist doch intern "im Prinzip" nur ein "long"? wo die Sekunden seit dem 01.01.1970 00:00:00 UTC drin stehen. Also müsste ich doch die Differenz in Sekunden bekommen wenn ich die utc von der localtime substrahiere (difftime) oder wo ist mein Denkfehler? Wer kann mir denn sagen was jetzt genau an dem Code vom ersten Posting falsch ist? Ich würde diesen Murks wenigstens gerne verstehen.
-
@firefly sagte in Std ist Müll:
gmtime und localtime liefern einen pointer auf eine tm struct zurück, die intern von der API verwaltet wird.
Und zwar verwenden beide funktionen die selbe instanz.
.
http://www.cplusplus.com/reference/ctime/localtime/
The returned value points to an internal object whose validity or value may be altered by any subsequent call to gmtime or localtime.@swordfish sagte in Std ist Müll:
localtime sagt:
The returned value points to an internal object whose validity or value may be altered by any subsequent call to gmtime or localtime.
-
Dieser Beitrag wurde gelöscht!
-
Würde mich wundern wenn es die selbe Instanz ist. Ich habe ja deswegen extra ein rawTime2 angelegt, was natürlich auch blöd ist...
Gibt es nicht unter Linux ein äquivalent zum gettimeofday das die localtime zurückgibt? Oder die Möglichkeit unter Linux direkt den Offset abzufragen. Diesen Std Müll möchte ich gar nicht verwenden...
-
@enumerator sagte in Std ist Müll:
Würde mich wundern wenn es die selbe Instanz ist. Ich habe ja deswegen extra ein rawTime2 angelegt
Was soll das für einen Einfluss darauf haben, worauf die von
std::gmtime()
undstd::localtime()
zurückgegebenen Zeiger verweisen? Nochmal:The returned value points to an internal object whose validity or value may be altered by any subsequent call to gmtime or localtime.
-
Als alternative zu localtime/gmtime gibt die varianten mit _r postfix. Die füllen eine übergebene tm struktur mit den Daten.
Dadurch spart man sich die kopie wie bei @Swordfish Beispiel. Ein weiterer Vorteil der *_r varianten ist die, das diese threadsafe sind.
-
-
-
@braunstein sagte in Std ist Müll:
@hustbaer
Australien
https://de.wikipedia.org/wiki/Zeitzonen_in_AustralienJa ne, schon Indien
https://de.wikipedia.org/wiki/UTC%2B5:30
-
Australien ist auch ein super Beispiel, insbesondere wegen der Unterschiede Sommer/Winter. Es gibt auch noch andere spannende Zeitzonen wie Nepal (UTC +5:45) oder die +14 Stunden von Line Islands Time.
-