Quelle est la meilleure méthode pour imprimer le temps en C au format 2009‐08‐10
18:17:54.811
?
Atm, j'ai Thu Sep 9 11:10:08 2010
mais je ne peux pas comprendre ce qui précède.
Quelle est la meilleure méthode pour imprimer le temps en C au format 2009‐08‐10
18:17:54.811
?
Atm, j'ai Thu Sep 9 11:10:08 2010
mais je ne peux pas comprendre ce qui précède.
Utilisez strftime () .
#include <stdio.h>
#include <time.h>
int main()
{
time_t timer;
char buffer[25];
struct tm* tm_info;
time(&timer);
tm_info = localtime(&timer);
strftime(buffer, 25, "%Y:%m:%d%H:%M:%S", tm_info);
puts(buffer);
return 0;
}
Pour la partie millisecondes, jetez un oeil à cette question. Comment mesurer le temps en millisecondes en utilisant ANSI C?
time.h
définit une fonction strftime
qui peut vous donner une représentation textuelle d'un time_t
utilisant quelque chose comme:
#include <stdio.h>
#include <time.h>
int main (void) {
char buff[100];
time_t now = time (0);
strftime (buff, 100, "%Y-%m-%d %H:%M:%S.000", localtime (&now));
printf ("%s\n", buff);
return 0;
}
mais cela ne vous donnera pas une résolution inférieure à la seconde car elle n'est pas disponible à partir d'un time_t
. Il génère:
2010-09-09 10:08:34.000
Si vous êtes vraiment limité par les spécifications et que vous ne voulez pas d'espace entre le jour et l'heure, supprimez-le simplement de la chaîne de format.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.