Convertir un timestamp unix en time_t ?
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:
Code:
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); |
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?
Merci!