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