Bonjour à tous,

J'essaye de faire afficher l'heure locale à l'aide de la fonction strftime mais sans succès : c'est toujours l'heure UTC qui est affiché... alors que j'utilise la fonction localtime pour remplir la structure de type tm.

Si dessous un extrait de programme que j'ai écrit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
time_t heure;
struct tm * t;
char date[64];
 
time(&heure);
t = locatime(&heure);
 
printf("Printf : Heure %i", t->tm_hour);
 
strftime(date, 64, "%H", t);
printf("Strftime : Heure %s", date);
A l'exécution j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Printf : Heure 14
Strftime : Heure 12
J'ai cherché un peu de partout mais je n'arrive pas à comprendre pourquoi l'heure affiché par strftime est l'heure UTC et non l'heure locale. Je me suis penché du coté des variables TZ et LC_TIME mais j'ai du mal à comprendre le rapport...

Je suis preneur d'un petit coup de main ou d'une explication

Merci d'avance