2009-02-12 13 views
10

Ich habe daran gearbeitet, Lesezeichen aus einer von Google Bookmarks generierten Exportdatei zu analysieren. Diese Datei enthält die folgende Datum Attribute:Google Bookmark Datumsformat exportieren?

ADD_DATE = "1231721701079000"

ADD_DATE = "1227217588219000"

Diese sind nicht Standard-Unix-Stil Zeitstempel. Kann mir hier jemand in die richtige Richtung zeigen? Ich werde sie mit C# analysieren, wenn du mir wirklich helfen willst.

Antwort

5

1231721701079000 sieht verdächtig nach Zeit seit dem 1. Januar 1970 in Mikrosekunden.

perl -wle 'print scalar gmtime(1231721701079000/1_000_000)' 
Mon Jan 12 00:55:01 2009 

Ich würde einige Lesezeichen zu bekannten Zeiten machen und es ausprobieren, um zu bestätigen.

+0

@Lothar Ist das eine tautologische Aussage? – Schwern

+0

Nein, es ist Zeit seit dem 1. Januar 1970 in _micro_ Sekunden – mgkrebbs

+0

@mgkrebbs Du hast Recht! Fest. Sag Hallo zu Dobie! – Schwern

1

Zunächst es zu betrachten, es sieht fast aus wie wenn man die letzten 6 Ziffern abgehackt Sie ein vernünftiges Datum Unix bekommen den online converter

1231721701 = Mo verwenden, 12. Januar 2009 00.55.01 GMT

1227217588 = Do, 20. November 2008 21.46.28 GMT

Die zusätzlichen 6-stellig Formatierung verwandte oder irgendeine Art von erweiterten Attributen werden könnte.

Es gibt einige Beispielcode für die conversion of Unix Timestamps, wenn das in der Tat ist, was es ist.

+0

Schwern aussehen richtig war, aber ich habe Ihnen eine Stimme für die Verbindung, die der Code I für die Umwandlung von Unix-Zeitstempel verwendet hat. –

+0

ja, ich stimme zu. Ich habe die Millisekunden nicht berücksichtigt. –

1

hier für Code-Beispiele: http://www.epochconverter.com/#code

// my groovy (Java-Code) kam schließlich heraus als:

def convertDate (def Epoche)

{

long dv = epoch/1000; // divide by 1,000 to avoid milliseconds 

String dt = new java.text.SimpleDateFormat("dd/MMM/yyyy HH:mm:ss").format(new java.util.Date (dv)); 

// um epoch zu erhalten:

// long epoch = new java.text.Simp leDateFormat ("MM/TT/JJJJ HH: MM: ss"). parse ("01.01.1970 01:00:00"). getTime() * 1000;

return dt; 

} // Ende def

So Datum firefox Lesezeichen exportiert als json mir gab:

json.lastModified: 1366313580447014

convert von Epoche Datum: 18/Apr/2013 21.33.00

aus:

println „konvertieren von epo ch date: "+ convertDate (json.lastModified)

13

Chrome verwendet für seine Zeitstempel eine modifizierte Form des Windows-Zeitformats (" Windows epoch "), sowohl in der Datei Bookmarks als auch in den Verlaufsdateien. Das Windows-Zeitformat ist die Anzahl der 100ns seit dem 1. Januar 1601. Das Chrome-Format ist die Anzahl der Mikrosekunden seit dem gleichen Datum und somit 1/10 so groß.

Um einen Chrome-Zeitstempel in und aus der Unix-Epoche zu konvertieren, müssen Sie in Sekunden konvertieren und den Unterschied zwischen den beiden Basisdatumszeiten (11644473600) ausgleichen.

Hier ist die Umrechnungsformeln für Unix, JavaScript (Unix in Millisekunden), Windows und Chrome Zeitstempel (Sie können die +/× neu ordnen und -/÷, aber Sie werden ein wenig Präzision verlieren):

u : Unix  timestamp eg: 1378615325 
j : JavaScript timestamp eg: 1378615325177 
c : Chrome  timestamp eg: 13902597987770000 
w : Windows timestamp eg: 139025979877700000 

u = (j/1000) 
u = (c - 116444736000000) /10000000 
u = (w - 1164447360000000)/100000000 

j = (u * 1000) 
j = (c - 116444736000000) /10000 
j = (w - 1164447360000000)/100000 

c = (u * 10000000)   + 116444736000000 
c = (j * 10000)    + 116444736000000 
c = (w/10) 

w = (u * 100000000)   + 1164447360000000 
w = (j * 100000)   + 1164447360000000 
w = (c * 10) 

Beachten Sie, dass dies ziemlich große Zahlen sind, Sie müssen also 64-Bit-Zahlen verwenden oder sie als Strings behandeln, wie mit dem BC-Math-Modul von PHP.

+0

Aber die Antwort ist über exportierte 'bookmarks_mm.dd.yyyy.html' http://fileformats.archiveteam.org/wiki/Chrome_bookmarks – Alex78191

2

Eureka! Ich erinnerte mich, dass ich die Bedeutung von ADD_DATE auf einer Webseite gelesen hatte, aber bis heute konnte ich sie nicht wiederfinden.

http://MSDN.Microsoft.com/en-us/library/aa753582(v=vs.85).aspx

bietet diese Erklärung als „Notiz“ kurz vor der Überschrift „Exporte und Importe“:

„In dieser Datei [-] Formatdefinition, {date} ist eine dezimale Ganzzahl, die die Anzahl der seit Mitternacht des 1. Januar 1970 vergangenen Sekunden darstellt. "

Bef Erz, das Beispiele für {date} wurden gezeigt:

<DT> < H3 FOLDED ADD_DATE = "{date}" > {title} </H3 > ...

und

<DT> < Ein HREF = "{url}" ADD_DATE = "{Datum}" LAST_VISIT = "{Datum}" LAST_MODIFIED = "{Datum}" > {title} </A > ...

Eines Tages werde ich ein VBA-Makro schreiben diese erkennbar Daten zu konvertieren, aber nicht heute!

Wenn jemand anderes zuerst ein Konvertierungsscript schreibt, teilen Sie es bitte mit. Vielen Dank.

4

In Javascript der Code wie diese

function chromeDtToDate(st_dt) { 
    var microseconds = parseInt(st_dt, 10); 
    var millis = microseconds/1000; 
    var past = new Date(1601, 0, 1).getTime(); 
    return new Date(past + millis); 
} 
+0

Es ist die Antwort über' bookmarks_mm.dd.yyyy.html', nicht über 'Bookmarks [. json] '. – Alex78191