Bonjour à toutes et à tous,
Je cherche depuis plusieurs jours sur mon temps libre comment convertir un timestamp unix en type time_t.
La question semble être un classique et j'ai trouvé plein de résultats sur mon ami le moteur de recherche, notamment une conversation intéressante sur ce thread.
Cependant, après moults essais, je ne trouve pas comment procéder. Je ne tombe jamais sur la date attendue. En fait je retrouve bien l'horaire et l'horaire exact mais avec 24h (très précisément!) de décalage...
Voici mon plus récent essai:
Le unix_server_time est de type unsigned int (que j'ai changé en signed long plutôt que de caster à la volée, mais le résultat est le même) et m'est retourné par un serveur après requête, j'ai vérifié par un convertisseur en ligne et ce timestamp est correct. Le thread mentionné indique bien que tm_sec peut gérer des valeurs >> 60 donc ca devrait fonctionner, mais il me manque encore 1 journée... quelqu'un a t'il une idée d'ou vient de cette différence?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 unsigned int unix_server_time = ...; //une valeur retournée par le serveur distant struct tm timeinfo = {0}; timeinfo.tm_year = 70; timeinfo.tm_sec = (signed long) unix_server_time; now = mktime(&timeinfo);
Merci!
Partager