Conversion de dates (j'ai perdu 2h !!!) [C] - C - Programmation
Marsh Posté le 09-10-2003 à 18:41:08
euh gmtime
localtime peut être
edit : je fais comment pour aider si je suis de nouveau soumis à cette limitation à la con
pourquoi tu fais pas un sscanf ?
sscanf(timestamp, "%02d-%02d-%02d %02d:%02d:%02d", &time->tm_mday, &time->tm_mon+1, ...
c'est symétrique, fait ça, àa sera plus claire, on verra après.
ok pour le static, par contre dans le deuxième, tu as une fuite de mémoire : utiliser une vairable auto, pas besoin d'allocation dynamique. utlise des time_t au lieu de unsigned long
Marsh Posté le 09-10-2003 à 18:53:29
Code :
|
Marsh Posté le 10-10-2003 à 08:26:04
1) Si j'utilise gmtime c'est que je doit travaille avec l'heure universelle gmt.
2) En effet j'avais pas pensé au sscanf ... c'est quand même plus lisible !
3) OK pour la fuite, j'ai fait une chtite boulette.
4) J'ai essayé ta solution:
|
J'ai toujours ma perte de 2h ... avec 2h de décalage horaire !
Marsh Posté le 10-10-2003 à 10:10:38
ben tu perds 2 heures par rapport à l'heure locale, pas par rapport à la gmt, faudrait savoir...
parce que figure toi qu'entre Paris et Greenwich, il y a un décalage horaire
Marsh Posté le 10-10-2003 à 10:21:32
Je perd bien 2h par rapport à l'heure gmt:
1065705799 = 09-10-03 13:23:19 (gmt) et 15:23:19 (local)
Pourquoi est-ce que j'obtient 11:23:19 (en plein atlantique !) à la 2ème conversion ?
Marsh Posté le 10-10-2003 à 11:10:42
J'ai le même soucis en utilisant des fonctions:
Code :
|
Resultat:
Today = 1065776523 -> 10-10-03 09:02:03
Tomorrow = 1065823200 -> 10-10-03 22:00:00
Et je passe à 22h00 du même jour ... manque encore 2h !
Marsh Posté le 10-10-2003 à 14:20:29
t'es un vrai boolay toi ...
Marsh Posté le 10-10-2003 à 14:55:16
ReplyMarsh Posté le 10-10-2003 à 15:34:15
Relis mon post plus attentivement STP avant de te foutre de moi ... tiens ça me rappelle un autre topic, on ne change pas une équipe qui gagne !
Tiens d'ailleurs le décalage entre locale et GMT est de 1h normalement ...
Marsh Posté le 10-10-2003 à 16:01:15
c'est ton PC qui est mal configuré ...
Code :
|
Today = 1065794458 -> 10-10-03 16:00:58
Tomorrow = 1065823200 -> 11-10-03 00:00:00
Marsh Posté le 10-10-2003 à 16:17:30
Encore une fois, tu travailles en localtime.
Moi, j'ai besoin de bosser en GMT ! Et c'est ça qui pose pb !
Marsh Posté le 09-10-2003 à 16:38:04
Je cherche à écrire 2 fonction de conversion de date:
L'une qui me transforme un timestamp "SQL-compliant" en timestamp en seconde (utc):
L'autre fait la conversion inverse
Mais cette dernière ne fonctionne pas correctement. Je "perd" 2h00 ... comme par hasard c'est le décalage horaire GMT.
1) Est-ce que je cherche compliqué et il existe une autre manière de faire ça ?
2) Sinon ... ben aidez moi !
Petit exemple:
M'affiche ça:
1065705799 = 09-10-03 15:23:19
09-10-03 13:23:19 = 1065698599
Time = 09-10-03 13:23:19
PS: les constante:
#define DAT_TIMESTAMP_SIZE 17+1 // Format 'DD-MM-YY HH:MI:SS'
#define DAT_TIMESTAMP_DD_POS 0
#define DAT_TIMESTAMP_MM_POS 3
#define DAT_TIMESTAMP_YY_POS 6
#define DAT_TIMESTAMP_HH_POS 9
#define DAT_TIMESTAMP_MI_POS 12
#define DAT_TIMESTAMP_SS_POS 15
Message édité par mog le 09-10-2003 à 16:39:46