J'ai un ordinateur fonctionnant sous DOS (freeDos 1.1) et C simple (compilé avec Borland 5.0) avec time.h
. Lorsque je règle l'heure de l'ordinateur à l'aide du BIOS ou des commandes DOS DATE
et TIME
, il n'y a pas d'informations sur le fuseau horaire. Je fixe l'heure à mon heure actuelle 10h25.Comment régler (ou corriger pour) fuseau horaire & DST dans c (fonctions time.h) et DOS
Mon programme C fait cela ...
char timeString[80];
time_t timeT = time(NULL);
strftime(timeString, sizeof(timeString), "%a %Y-%m-%d %H:%M:%S %Z", localtime(&timeT));
printf("%s\n", timeString);
quand je lance le code que je reçois l'heure actuelle correcte mais avec un fuseau horaire « EST » à la fin comme appelé par le formatter %Z
.
Mon 13/03/2017 10:25:36 EST
La valeur retournée time_t
de time(NULL)
est 1489418736.
Cela tombe mathématiquement jusqu'à 47 ans, 83 jours, 15 heures, 25 minutes, 36 secondes
Clairement time.h
met en œuvre des informations de fuseau horaire ici, en ajoutant 5 heures à mon heure actuelle.
Le passage à javascript qui reçoit la valeur time_t
new Date(1489418736 * 1000)
Lun 13 mars 2017 08:25:36 GMT-0700 (heure avancée du Pacifique)
Il semble qu'il y ait une combinaison de fuseau horaire (EST vs PST vs GMT) et l'heure d'été (qui pourrait expliquer l'heure supplémentaire?) En jeu ici. Comment puis-je modifier les paramètres de fuseau horaire et d'heure d'été de la machine, du système d'exploitation ou de la représentation de la bibliothèque C, afin d'obtenir la représentation horaire la plus utile que ce soit locale ou GMT?
Pas clair ce que vous demandez. S'il s'agit d'une commande DOS, c'est hors sujet ici. Pour la programmation, fournissez un [mcve] et décrivez votre problème spécifique. La question de base pourrait être: "DOS prend-il en charge les fuseaux horaires?" – Olaf
Je suis curieux de savoir pourquoi vous avez une machine DOS. La dernière version DOS date d'il y a 16 ans. Une explosion du passé, pour être sûr. – Amy
J'ai changé le titre pour mieux refléter la question posée (c'était déjà la dernière phrase du post). Pourquoi j'utilise DOS, parce que c'est le projet auquel je suis assigné. Pourquoi la question n'est pas claire, parce que je ne comprends pas vraiment à quel niveau cela est implémenté que ce soit machine, os, c bibliothèque, ou juste mon utilisation de celui-ci. – robisrob