Casting Int96 Timestamp from Parquet to Go
Pour convertir une valeur int96 représentant un horodatage d'un fichier Parquet vers un horodatage Go, suivez ces étapes :
-
Séparez les Valeur Int96 : L'horodatage int96 est un tableau de 12 octets composé de deux parties :
- 8 premiers octets : temps en nanosecondes, stocké dans l'ordre des octets inversé
- 4 derniers octets octets : date en jour julien nombre
-
Analyser le temps à partir des 8 premiers octets :
- Inversez les octets pour obtenir la valeur de temps correcte (0x000029324BFD6000 dans l'exemple donné)
- Divisez la valeur par 10^9 pour convertir les nanosecondes en secondes (45296 secondes dans ce cas)
-
Extraire la date des 4 derniers octets :
- Inversez les octets pour obtenir le numéro du jour julien (0x00256859 dans le exemple)
- Utilisez une bibliothèque ou calculez manuellement pour convertir le numéro du jour julien en un horodatage Go (2000-01-01 12:34:56 dans ce cas)
-
Compose Timestamp : Combinez l'heure et la date analysées pour créer un horodatage Go représentant l'int96 d'origine valeur.
Remarque : L'horodatage int96 dans Parquet n'est pas mesuré à partir de l'époque mais à partir de minuit. Gardez cela à l’esprit lors de la conversion en horodatage Go.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn