Zitat von
Andreas L.:
Zitat von
Chemiker:
12879544607645573 = Datum/Zeit. Welches Datum/Uhrzeit soll dieser Wert repräsentieren?
Hast Du die passenden Werte von Datum/Uhrzeit?
Ja, es soll der Donnerstag, 19. Februar 2009 20:16:47 sein.
Nö, 19:16 (20:16 ist die lokale Zeit bei dir).
Zitat von
Andreas L.:
OK, ich hab jetzt weitere Infos. Es scheint sich um das von Webkit verwendet Datumsformat zu handeln:
Zitat:
WEBKIT time which is the number of microseconds since midnight UTC of 1 January 1601
Wie könnte ich das nun am besten umrechnen?
Windows verwendet ein ähnliches Zeitformat für TFileTime - nur in 100 Nanosekunden anstatt Mikrosekunden:
Delphi-Quellcode:
type
TWebKitTime = UInt64;
function WebKitTimeToDateTime(const AWebKitTime: TWebKitTime;
out ADateTime: TDateTime): Boolean;
var
SystemTime: TSystemTime;
begin
Result := FileTimeToSystemTime(TFileTime(AWebKitTime * 10), SystemTime);
if Result then
try
ADateTime := SystemTimeToDateTime(SystemTime);
except
on E: EConvertError do
Result := False;
end;
end;
procedure TestWebKitTimeToDateTime();
var
DateTime: TDateTime;
begin
if WebKitTimeToDateTime(StrToInt64('12879544607645573'), DateTime) then
ShowMessage(DateTimeToStr(DateTime));
end;
Für die Umrechnung in eine lokale Zeit könnte man FileTimeToLocalFileTime verwenden.
Wie auch immer, man sollte beachten, dass TDateTime nicht alle Werte eines TFileTime/TWebKitTime abbilden kann (vor dem 30.12.1899).