Bonjour,
Comment faire pour convertir une date (et heure) GMT en time_t? J'ai pu réaliser la conversion avec mktime pour une date en heure locale mais je ne trouve pas comment faire pour une date GMT.
Merci
Bonjour,
Comment faire pour convertir une date (et heure) GMT en time_t? J'ai pu réaliser la conversion avec mktime pour une date en heure locale mais je ne trouve pas comment faire pour une date GMT.
Merci
Je pense que tu peux faire un calcul en fonction des fonctions contenues dans locale.h![]()
Le décalage horaire n'est pas renseigné par les locales. Un moyen simple et portable permettant de calculer le décalage horaire est de prendre n'importe quelle date (par exemple time(&date)), de la traduire en GMT puis en temps local et faire la différence. Ensuite pour convertir une date GMT en time_t, tu appelles mktime puis tu soustrais le résultat par le décalage horaire.
Pas bête, ça fonctionne bien. C'est juste dommage qu'il n'y ait pas d'équivalent de mktime pour les temps gmt.
Pour ce que ça interesse, voila le résultat :
et l'utilisation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 void Util::computeGMTOffset() { time_t rawtime; // Get the gmt time stamp. tm *timestamp = gmtime(&rawtime); time_t gmtime = mktime(timestamp); // Get the local time stamp. timestamp = localtime(&rawtime); time_t localtime = mktime(timestamp); gmtOffset = localtime - gmtime; }
Merci pour l'aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part mktime(&time) + gmtOffset;
une mini-recherche dans les Sources C t'aurait donné la routine que j'y ai placée :
DATE_mktime_from_gmt
Partager