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 :
Maintenant la date heure contient des nano secondes ce qui fait plus de 17 chiffres (20 chiffres).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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());
Après des recherches, on me dit d'utiliser le format int128_t.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 */
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 !!
Partager