![]() |
UnixToDateTime
Hallo,
ich habe jetzt einige Beiträge gelesen, aber nichts gefunden was mir wirklich hilft. Ich habe in einer MySQL DB das folgende Datum "26.03.2015 - 09:51:00" als UnixTime gespeichert: "1427359860". Online Umrechner: ![]() Wenn ich den Wert jetzt mit dem Programm auslese "1427359860" und umrechne ![]() dann erhalte ich eine Std. Versatz.
Delphi-Quellcode:
Ist da immer eine Std. Versatz oder hat das mit der Zeitzone zu tun in der die EXE läuft ?
dt : TDateTime;
begin dt := DateUtils.UnixToDateTime(1427359860); ShowMessage('Realzeit: 26.03.2015 - 09:51:00 <> ' + FormatDateTime('dd.mm.yyyy hh:nn:ss', dt)); // Ausgabe = Realzeit: 26.03.2015 - 09:51:00 <> 26.03.2015 08:51:00 Eigentlich ja schon Quatsch das da überhaupt was verkehrtes rauskommt... sollte ja immer "die Anzahl der vergangenen Sekunden seit dem 1.1.1970 um 00:00" sein |
AW: UnixToDateTime
|
AW: UnixToDateTime
Toll, jetzt hatte ich extra was getippt und Klaus war schneller. Jetzt schicke ich es trotzdem ab :x
Delphi-Quellcode:
PS:
procedure justUnixTimeThings();
const unixTime = 1427359860; var dateTime: TDateTime; begin dateTime := System.DateUtils.UnixToDateTime(unixTime); Write('Unix timestamp converted to UTC: '); WriteLn( DateTimeToStr(dateTime) ); Write('Converted to local timezone: '); dateTime := TTimeZone.Local.ToLocalTime(dateTime); WriteLn( DateTimeToStr(dateTime) ); end;
Delphi-Quellcode:
hat bei mir noch einen optionalen zweiten Parameter
UnixToDateTime
Delphi-Quellcode:
aber das gab es in XE2 noch nicht. Damit hätte man sich die Zeitzonen-Umwandlung direkt sparen können.
AReturnUTC: Boolean
|
AW: UnixToDateTime
Wem ist der zweite Parameter bei UnixToDateTime aufgefallen?
Vorallem das True-Default. :roll: (nicht im Lazarus) |
AW: UnixToDateTime
Das Postscriptum von Günther nicht gelesen?
|
AW: UnixToDateTime
Delphi-Quellcode:
alles komisch...
const
UnixTime = 1427359860; var dt : TDateTime; begin dt := EncodeDateTime(1970, 1, 1, 0, 0, 0, 0); dt := IncSecond(dt, UnixTime); Memo1.Lines.Append(DateTimeToStr(dt)); // 26.03.2015 08:51:00 ??? // @Der schöne Günther, passt dt := TTimeZone.Local.ToLocalTime(DateUtils.UnixToDateTime(UnixTime)); Memo1.Lines.Append(DateTimeToStr(dt)); // 26.03.2015 09:51:00 = ok |
AW: UnixToDateTime
Wo ich anfing mit schreiben, war der noch nicht da und die faule RedBox hat auch kein Wort gesagt. :stupid:
Bugfix kaufen? Wurde mit XE6 repariert eingeführt. ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz