La fonction heure de time.h donne des millisecondes depuis l'époque.Comment obtenir des millisecondes depuis minuit UTC en C?
Répondre
Vous utilisez gettimeofday (2) qui est défini dans POSIX.1 et BSD.
Il renvoie des secondes et des microsecondes comme défini dans struct timeval à partir de sys/time.h.
Vous trouverez des exemples de code C
pour obtenir du temps et le convertir en différents formats here.
Ceci est un moyen simple:
time_t seconds_since_midnight = time(NULL) % 86400;
Pour obtenir millisecondes approximatives depuis minuit, multipliez par seconds_since_midnight
1000.
Si vous avez besoin d'une résolution plus (si vous considérez vraiment faire), vous devrez utilisez une autre fonction telle que gettimeofday()
.
Jetez un oeil à gmtime() convertit directement à temps universel coordonné (UTC) ...
Ceci est la façon précise:
struct timeval tv;
int msec = -1;
if (gettimeofday(&tv, NULL) == 0)
{
msec = ((tv.tv_sec % 86400) * 1000 + tv.tv_usec/1000);
}
qui stockera dans msec
le nombre de millisecondes depuis minuit. (ou -1 s'il y avait une erreur est survenue lors du temps.)
Bien qu'il soit généralement une mauvaise idée pour stocker le temps des valeurs dans un int
, je suis un peu cavalière et en supposant int
est d'au moins 32 bits , et peut facilement accommoder la gamme (-1) à 86 400 000.
Mais je ne sais pas si cela en vaut la peine.
Il semble y avoir quelque chose de mal avec votre code, selon le C que je connais. Peut-être que vous auriez dû déclarer 'msec' à l'avance, aussi' else'. – ThoAppelsin
@ThoAppelsin Bon point. Corrigée. Merci! – scraimer
- 1. Comment obtenir le temps écoulé en millisecondes dans Ruby?
- 2. Comment obtenir une valeur DateDiff en millisecondes dans VBA (Excel)?
- 3. Comment obtenir le temps de création du dossier (en millisecondes)?
- 4. uint64 UTC heure
- 5. longueur mp3 en millisecondes
- 6. php: convertir des millisecondes à ce jour
- 7. Convertir en horodatage UTC
- 8. Comment puis-je obtenir une heure UTC précise avec Python?
- 9. Obtenir des ticks de minuterie en Python
- 10. Comment convertir un horodatage log4j en millisecondes en Perl?
- 11. Comment convertir DateTime.now en UTC dans Ruby?
- 12. Comment obtenir la valeur UTC pour SYSDATE sur Oracle
- 13. Comment obtenir des ID photo depuis l'API Flickr?
- 14. Convertir UTC en Unix Timestamp
- 15. Comment convertir l'heure UTC en heure dans n'importe quel autre fuseau horaire en C#
- 16. Comment puis-je apprendre mon heure avant minuit ou après minuit?
- 17. comment obtenir la réponse de saisie semi-automatique en 100ms (millisecondes)
- 18. Java ResultSet comment getTimestamp UTC
- 19. PHP Heure après minuit problème
- 20. Connexion et utilisation des rails depuis C++
- 21. ASP: convertir des millisecondes à ce jour
- 22. Comment obtenir des valeurs uniques d'une collection en C#?
- 23. Comment obtenir une liste des assemblys en C#?
- 24. .Net Envoyer un message à minuit en fonction de TimeZone?
- 25. Comment créer une heure UTC en C pour un jour, un mois et une année spécifiques?
- 26. Comment puis-je exprimer 10 millisecondes en utilisant timeval?
- 27. Comment afficher les millisecondes dans Google Annotatedtimeline?
- 28. Axapta/DynamicsAx: Conversion datetime UTC
- 29. SAS informat datetime millisecondes
- 30. Restaurer depuis Recyclebin (C#)
En fait, la fonction time() donne le temps en secondes, et non en millisecondes, depuis l'époque (et ignore les secondes intercalaires). –