![]() |
Google Chrome Time nach TDateTime
Hallo!
Ich versuche die Datumsstring von Google Chrome nach TDateTime zu wandeln. Es ist Zeichenketten mit der Länge von 17 Bytes. Beispiel: 12990353101092500 Nach viel Googeln habe ich festgestellt dass es ein leicht modifiziertes Windows NT Datumsformat ist. Man muss zu den 17 Stellen nur eine 0 anhängen damit es 18 werden. Es handelt sich dann um die Zeit seit dem 1 Januar 1601 in Schritten von 100 Nanosekunden. Auf der Windows Kommandozeile kann man sich die Zeit aus dem Beispiel (+ eine 0 am Ende) so anzeigen lassen: w32tm.exe /ntte 129903531010925000 Ergebnis: 150351 07:25:01.0925000 - 25.08.2012 09:25:01 Ich bitte nun um Hilfe um dieses Datumsformat nach TDateTime zu konvertieren. Hab es selbst versucht ab es kommt nur merkwürdiges dabei raus (Jahr 2381 etc). |
AW: Google Chrome Time nach TDateTime
Was bitte ist ein Datumsstring von "Google Chrome"? Meinst Du den Wert eines Javascript-Date Objektes? Schliesslich ist Chrome nur ein Webkit-Browser mit der V8 Javascript-Engine.
|
AW: Google Chrome Time nach TDateTime
Ich denke
![]() Mich würde aber auch interessieren, wo solche merkwürdigen Timestamps in Chrome verwendet werden. |
AW: Google Chrome Time nach TDateTime
Zitat:
Zitat:
|
AW: Google Chrome Time nach TDateTime
Wenn es JSON ist, hast Du einfach mal versucht das als einen Javascript-Date-Wert zu verarbeiten?
Der einfachste Check wäre, ein new Date('value') in der Chrome-Javascript Console (Developer tools) zu machen, und dann zu schauen ob da was Sinnvolles bei rauskommt. |
AW: Google Chrome Time nach TDateTime
Es kommt dann 'Invalid date'
|
AW: Google Chrome Time nach TDateTime
Mhm, ich habe es eben auch nicht so hingekriegt :?
Egal, dann eben ohne überlegen:
Code:
Jetzt Daumen drücken und hoffen (=> Testen), dass es wirklich so linear geht :pale:
const factor = 1.45218472707248E-12;
const StartDate: TDateTime = 22282 {1.1.1961}; function DateTimeToChrome(ConvDate: TDateTime): UInt64 ; begin Result := round((ConvDate - StartDate) / factor); end; function ChromeToDateTime(ticks: UInt64): TDateTime; begin Result := (ticks * factor) + StartDate; end; function calcFactor: double; begin result := (StrToDateTime('25.08.2012 09:25:01') - StartDate)/12990353101092500.0; end; |
AW: Google Chrome Time nach TDateTime
BUG, danke für den Versuch, aber es klappt noch nicht.
Hab so getestet: procedure TForm1.Button1Click(Sender: TObject); begin Caption := DateTimeToStr(ChromeToDateTime(12990353101092500)) ; end; Ergebnis: 00.00.0000 14:40:47 |
AW: Google Chrome Time nach TDateTime
Folgendes bedürfte IMHO noch der Zeitzonen und Sommerzeitbehandlung, ansonsten meine ich passt es
Delphi-Quellcode:
Function MyDateTime(d:Double):TdateTime;
begin Result := (d/1000000 + EncodeDate(1601,1,1) * (24*60*60))/(24*60*60) ; end; |
AW: Google Chrome Time nach TDateTime
Irgendwie riecht das so, als ob man mit
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:19 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