AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Google Chrome Time nach TDateTime

Offene Frage von "Bummi"
Ein Thema von Shark99 · begonnen am 15. Sep 2012 · letzter Beitrag vom 16. Sep 2012
Antwort Antwort
Seite 1 von 2  1 2      
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#1

Google Chrome Time nach TDateTime

  Alt 15. Sep 2012, 12:48
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).
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#2

AW: Google Chrome Time nach TDateTime

  Alt 15. Sep 2012, 12:59
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.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#3

AW: Google Chrome Time nach TDateTime

  Alt 15. Sep 2012, 13:26
Ich denke diese Funktion ist gut erklärt und kann einfach umgebaut werden.

Mich würde aber auch interessieren, wo solche merkwürdigen Timestamps in Chrome verwendet werden.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#4

AW: Google Chrome Time nach TDateTime

  Alt 15. Sep 2012, 18:07
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.
Chrome schreibt verschiedene Data Files (Bookmarks, History etc) in JSON format, dort gibt es die Datum Strings eben in diesem Windows NT Zeitformat, aber mit 17 statt 18 stellen.

Ich denke diese Funktion ist gut erklärt und kann einfach umgebaut werden..
Das war meine Ausgangsbasis. Habe in einem Thread den Tip bekommen die rechten 6 Stellen abzuschneiden von dem Chrome Zeitstring und dann die Unix Time konvertierung anzuwenden. Leider kam dabei dann das Jahr 23xx raus.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#5

AW: Google Chrome Time nach TDateTime

  Alt 15. Sep 2012, 18:34
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.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#6

AW: Google Chrome Time nach TDateTime

  Alt 15. Sep 2012, 18:38
Es kommt dann 'Invalid date'
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#7

AW: Google Chrome Time nach TDateTime

  Alt 15. Sep 2012, 19:17
Mhm, ich habe es eben auch nicht so hingekriegt

Egal, dann eben ohne überlegen:
Code:
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;
Jetzt Daumen drücken und hoffen (=> Testen), dass es wirklich so linear geht
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.

Geändert von BUG (15. Sep 2012 um 19:19 Uhr)
  Mit Zitat antworten Zitat
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#8

AW: Google Chrome Time nach TDateTime

  Alt 16. Sep 2012, 02:27
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
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#9

AW: Google Chrome Time nach TDateTime

  Alt 16. Sep 2012, 08:37
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;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Google Chrome Time nach TDateTime

  Alt 16. Sep 2012, 08:48
Irgendwie riecht das so, als ob man mit Delphi-Referenz durchsuchenFileDateToDateTime da weiter kommt
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz