7
votes

Comment puis-je obtenir des millisecondes depuis minuit UTC en C?

La fonction temporelle à temps.h donne des millisecondes depuis l'époque.


1 commentaires

En fait, la fonction TIME () donne le temps en secondes, pas des millisecondes, car l'époque (et elle ignore les secondes saut).


5 Réponses :


5
votes

Vous utilisez GetTimeOdday (2) qui est défini dans POSIX.1 et BSD.

Il renvoie des secondes et des microsecondes telles que définies dans la structure Timeval de SYS / TIME.H.


0 commentaires

0
votes

Vous trouverez des exemples de code C pour obtenir le temps et la convertir à divers formats Ici .


0 commentaires

7
votes

Ceci est un moyen simple:

time_t seconds_since_midnight = time(NULL) % 86400;


0 commentaires

0
votes

Jetez un coup d'oeil à gmtime () convertit directement en temps universel coordonné (UTC) ...


0 commentaires

7
votes

Ceci est la manière précise: xxx

qui stockera dans msec le nombre de millisecondes depuis minuit. (Ou -1 s'il y avait une erreur d'obtention du temps.)

Bien que ce soit généralement une mauvaise idée de stocker des valeurs temporelles dans un int , je suis un peu cavalier et en supposant que int est d'au moins 32 bits et peut facilement accueillir la plage (-1) à 86 400 000.

mais je ne sais pas si cela vaut tout l'effort.


1 commentaires

Il semble y avoir quelque chose de mal avec votre code, selon le C que je connais. Peut-être auriez-vous dû déclarer msec à l'avance, également utilisé sinon .