Heim >Backend-Entwicklung >Golang >Wie konvertiere ich einen Parquet Int96-Zeitstempel in einen Go-Zeitstempel?

Wie konvertiere ich einen Parquet Int96-Zeitstempel in einen Go-Zeitstempel?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-21 17:41:10860Durchsuche

How Do I Convert a Parquet Int96 Timestamp to a Go Timestamp?

Int96-Zeitstempel von Parquet in Go umwandeln

Um einen int96-Wert, der einen Zeitstempel darstellt, aus einer Parquet-Datei in einen Go-Zeitstempel umzuwandeln, befolgen Sie diese Schritte Schritte:

  1. Trennen Sie die Int96-Wert: Der int96-Zeitstempel ist ein 12-Byte-Array, das aus zwei Teilen besteht:

    • Erste 8 Bytes: Zeit in Nanosekunden, gespeichert in umgekehrter Bytereihenfolge
    • Letzte 4 Bytes: Datum als Julianischer Tag Zahl
  2. Analysezeit ab den ersten 8 Bytes:

    • Kehren Sie die Bytes um, um den richtigen Zeitwert zu erhalten (0x000029324BFD6000 in das angegebene Beispiel)
    • Teilen Sie den Wert durch 10^9, um Nanosekunden in Sekunden umzuwandeln (in diesem Fall 45296 Sekunden)
  3. Datum aus den letzten 4 Bytes extrahieren:

    • Kehren Sie die Bytes um, um die julianische Tageszahl zu erhalten (0x00256859 im Beispiel)
    • Verwenden Sie eine Bibliothek oder berechnen Sie manuell, um die julianische Tageszahl in einen Go-Zeitstempel umzuwandeln (in diesem Fall 2000-01-01 12:34:56)
  4. Zeitstempel erstellen: Kombinieren Sie die analysierte Zeit und das Datum, um einen Go-Zeitstempel zu erstellen, der den ursprünglichen int96 darstellt Wert.

Hinweis: Der int96-Zeitstempel in Parquet wird nicht ab der Epoche, sondern ab Mitternacht gemessen. Beachten Sie dies bei der Konvertierung in einen Go-Zeitstempel.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen Parquet Int96-Zeitstempel in einen Go-Zeitstempel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn