首頁 > 後端開發 > Golang > 如何將 12 位元組 Int96 時間戳轉換為 GoLang 時間戳記?

如何將 12 位元組 Int96 時間戳轉換為 GoLang 時間戳記?

Susan Sarandon
發布: 2024-12-22 12:33:18
原創
829 人瀏覽過

How to Convert a 12-Byte Int96 Timestamp to a GoLang Timestamp?

將Parquet Int96 時間戳轉換為GoLang

在這種情況下,您有一個12 位元組的int96 時間戳數組,並希望將其轉換為GoLang 中的時間戳記。

通常,int96 時間戳由 8 位元組奈秒組成部分和儲存為儒略日數的 4 位元組日期部分。然而,在這種情況下,前 8 個位元組實際上是納秒,而不是毫秒,紀元是午夜,而不是 Unix 紀元。

為了說明轉換過程,讓我們考慮以下 int96 時間戳:

正確解釋:

  1. 反轉前 8個位元組取得奈秒部分:0x0000000029324BFD
  2. 將其轉換為整數:45296 * 10^9 奈秒
  3. 將結果轉換為秒:45296秒
  4. 從中提取時間分量秒:12小時34分56秒
  5. 反轉最後4個位元組得到儒略日數:0x00256859
  6. 轉換為整數:2451545
  7. 使用儒略日曆來找出對應的日期: 2000-01-01

因此,int96 時間戳 [128 76 69 116 64 7 0 0 48 131 37 0] 代表 GoLang 中的時間 2000-0131 37 013:56

以上是如何將 12 位元組 Int96 時間戳轉換為 GoLang 時間戳記?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板