Date heure : Nombre supérieur à un format int64_t quel format utilisé ?
Bonjour,
J'ai un problème de format de sortie d'une date heure qui contient maintenant des nano - secondes au lieu des millisecondes.
Pour une date normale avec des millisecondes contenues dans un format string, j'utilisait le format int64_t avec la fonction de conversion _atoi64().
Exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
/*...*/
string S_DateHeure{};
int64 I64_DateHeure{};
/*Initialisation d'une date heure en milliseconde*/
S_Date_Heure = "20220907121659001";
/*Conversion en format int64_t de la date heure en format string*/
I64_Date_Heure = _atoi64(S_Date_Heure.c_str()); |
Maintenant la date heure contient des nano secondes ce qui fait plus de 17 chiffres (20 chiffres).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
string S_DateHeure{};
int64 I64_DateHeure{};
/*Initialisation d'une date heure avec des nano-seconde*/
S_Date_Heure = "20220907125250000005";
/*Conversion en format int64_t de la date heure en format string*/
I64_Date_Heure = _atoi64(S_Date_Heure.c_str());
/*
J'obtiens un chiffre : 9223372036854775807 au lieu 20220907125250000005
*/ |
Après des recherches, on me dit d'utiliser le format int128_t.
Sauf que mon compilateur C++ ne contient pas cette librairie et donc ne reconnait pas les int128_t même en le mettant à jour !
- Existe t il un format plus long que le int64_t ?
- Si oui pouvez vous me donner sa fonction de convertion d'un format string en ce format ?
Merci !!