>백엔드 개발 >Golang >12바이트 Int96 타임스탬프를 GoLang 타임스탬프로 변환하는 방법은 무엇입니까?

12바이트 Int96 타임스탬프를 GoLang 타임스탬프로 변환하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-22 12:33:18830검색

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

Parquet Int96 타임스탬프를 GoLang으로 변환

이 시나리오에서는 12바이트 int96 타임스탬프 배열이 있고 이를 GoLang의 타임스탬프로 변환하려고 합니다.

일반적으로 int96 타임스탬프는 8바이트 나노초 부분과 4바이트 날짜 부분이 율리우스력 일수로 저장됩니다. 그러나 이 경우 처음 8바이트는 실제로 밀리초가 아닌 나노초이며, 에포크는 Unix 에포크가 아닌 자정입니다.

변환 프로세스를 설명하기 위해 다음 int96 타임스탬프를 고려해 보겠습니다.

[128 76 69 116 64 7 0 0 48 131 37 0]

정확하게 해석하려면:

  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-01-01 12:34:56을 나타냅니다.

위 내용은 12바이트 Int96 타임스탬프를 GoLang 타임스탬프로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.