Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#7

AW: Unix-Timestamp --> TDateTime

  Alt 15. Jun 2012, 16:13
Sorry wenn ich diesen Beitrag nochmal rauskrame, aber er findet sich bei Google so gut und stimmt leider nicht.
Die richtige Antwort wäre:
[...]
Eventuel kann man das noch etwas vereinfachen.
[...]
Das Problem mit der in #3 gennanten Antwort ist, das diese nur für TDateTime-Werte mit 0 Uhr funktioniert. Die Annahme das der Nachkommawert die Anzahl der Sekunden seit Tagesbeginn ist, ist falsch und findet sich aber in vielen Lösungsansätzen im Internet wieder. Der Nachkomma ist der prozentuelle Fortschritt des Tages so ist 0.5(50% des Tages) 12 Uhr oder 0.25(25% des Tages) 6 Uhr ist. Imo ist das nirgendwo so richtig dokummentiert, auch in der Hilfe nicht, ich habe es mir über die Beispiele in der Hilfe zusammengereimt.
Nachdem ich deine Lösung etwas vereinfacht habe, bin ich bei diesem Code gelandet:
Code:
Timestamp div 86400 + (Timestamp mod 86400) / 86400 + 25569;
Was ziemlich genau dem Code aus #4 entspricht.
Nebenbai wird in #3 ja "DateUtils.UnixToDateTime" empfohlen, das würde mich schon sehr wundern wenn das falsche Werte liefert.

Die Sache mit dem Nachkommaanteil ist in der Hilfe übrigens sehr genau dokumentiert: http://docwiki.embarcadero.com/Libra...stem.TDateTime
  Mit Zitat antworten Zitat