Fonction Asctime dans le langage C

Fonction Asctime dans le langage C
Les données de temps sont calculées à partir des secondes depuis 00:00:00 UTC le 1er janvier 1970 GMT ou UNIX Time. Pour utiliser ces données dans un format lisible par humain, vous devez convertir l'heure Unix en une date de temps puis en une chaîne.

Dans ce Indice de linux Article, nous expliquerons comment utiliser ascTime () Pour récupérer les données de temps du calendrier du système et les convertir en une chaîne. Nous explorerons la description théorique de la structure de ces données TM, la syntaxe de la fonction et ses arguments d'entrée et de sortie ainsi que les types de données que chacun prend en charge. Nous implémenterons ensuite l'utilisation de cette fonction avec des exemples pratiques en utilisant des extraits de code et des images.

Syntaxe de la fonction AscTime () dans le langage C

char * str asctime (const struct tm * tm_ptr);

Description de la fonction AscTime () dans le langage C

Le ascTime () La fonction récupère les informations de Struct TM qui est indiquée par le * TM_PTR pointeur, le convertit en une chaîne et renvoie son pointeur dans * Str.

Le format qui est renvoyé par cette fonction dans la chaîne de sortie est le suivant:

"Www mmm dd hh: mm: ss yyyy \ n \ 0"

Les jours et les mois sont représentés par les trois premières lettres de leurs noms. Les dates sont représentées par deux chiffres pour les jours et les mois et quatre chiffres pour l'année. La chaîne correspondant à Str contient un caractère spécial \ n \ 0 à la fin.

Le ascTime () La fonction et ses variables sont définies dans le «temps.en-tête h ”. Pour les utiliser, nous devons les inclure dans notre «.c "ou".Fichier h ”comme suit:

#inclure

Comment obtenir l'heure locale au format de chaîne avec la fonction AscTime () dans le langage C

Dans cet exemple, nous vous montrerons étape par étape sur la façon d'utiliser le ascTime () Fonction pour obtenir le temps UNIX et les données de temps locales dans la structure TM, puis la convertir en une chaîne de caractères lisibles par l'homme.

Comme nous l'avons expliqué dans l'introduction, le temps du système est calculé à partir de l'heure Unix. Par conséquent, nous devons obtenir ce temps d'abord avec la fonction Time () dans Time_T.

Dans l'extrait suivant, Time () obtient le temps Unix U_time et l'imprime à la console de commande:

#inclure
#inclure
vide main ()

time_tu_time;
U_time = time (null);
printf ("Unix Time:% ld \ n", u_time);

L'image suivante affiche le temps Unix qui est renvoyé dans U_time.

Une fois que nous aurons obtenu l'heure d'Unix, nous devons convertir ces données en un temps local ou GMT et les stocker dans la structure entière, TM.

Chaque entier de cette structure représente les secondes, les minutes, les heures, les jours, etc. Plus tard, nous donnerons une description plus détaillée des variables contenues dans cette structure et comment vous pouvez accéder à chacun d'eux.

Les données de la structure TM peuvent être le temps local auquel vous obtenez heure locale() ou le temps GMT avec gmtime ().

Les deux fonctions ont le temps Unix obtenu avec U_time comme argument d'entrée et renvoyez le pointeur tm_ptr de TM, que nous devons définir au préalable comme indiqué dans ce qui suit:

#inclure
#inclure
vide main ()


struct tm * tm_ptr; // Définir TM_PTR comme un pointeur vers TM

Il est important de noter que le temps Unix U_time et les données TM sont mises à jour à chaque fois que l'une des fonctions qui récupèrent ces données sont appelées. Sinon, les données du dernier appel restent stockées dans leurs variables.

Dans l'extrait de code suivant, nous voyons comment récupérer les données de temps locales dans la structure TM à l'aide de la fonction locale (). Lorsque vous appelez cette fonction, vous devez passer le temps d'Unix comme argument d'entrée et le pointeur vers TM comme argument de sortie.

tm_ptr = localtime (& u_time);

De cette façon, nous avons déjà converti le temps d'Unix à l'heure locale et l'avons stockée dans la structure TM. Il nous suffit de convertir ces données en une chaîne avec ascTime ().

Dans l'extrait suivant, nous voyons le code pour obtenir l'heure d'Unix. Calculez ces données et stockez-les dans TM Struct. Ensuite, nous utilisons AscTime () pour convertir les entiers de la structure qui est indiqué par * TM_PTR aux cordes.

Cette fonction renvoie la chaîne qui est indiquée par * str_ptr Dans son argument de sortie.

Enfin, nous publions la chaîne obtenue à la console de commande à l'aide de printf ().

#inclure
#inclure
vide main ()

time_tu_time; // définir U_time comme sortie du temps ()
const char * str_ptr; // définir le pointeur de la chaîne
struct tm * tm_ptr; // Définir TM_PTR comme un pointeur vers TM
U_time = time (null); // Nous obtenons le temps UTC dans U_time
tm_ptr = localtime (& u_time); // Nous obtenons l'heure locale dans TM
str_ptr = asctime (tm_ptr); // Convertir TM en chaîne
printf ("L'heure locale est:% s \ n", str_ptr);

L'image suivante montre le résultat de ce code:

Le TM Strust

Le TM structure et le Time_T et horloge_t Les variables sont des structures prédéfinies et des types de données dans le «temps.En-tête h ”et sont utilisés pour stocker les résultats qui sont retournés par certaines des fonctions définies là-bas.

Examinons maintenant la structure du TM ITEGER et les noms des variables individuelles qui le ralentissent:

structtm
inttm_sec; // secondes (0-61)
inttm_min; // Minutes (0-59)
inttm_hour; // heures (0-23)
inttm_mday; // jour (1-31)
inttm_mon; // mois (0-11)
inttm_year; // des années depuis 1970
inttm_wday; // en semaine (0-6; dimanche = 0)
inttm_yday; // jour de l'année (0-365)
inttm_isdst; // heure d'été 1 = Oui; 0 = non; -1 = indéfini
;

Conclusion

Dans ce Indice de linux Article, nous avons expliqué comment obtenir le temps du système Unix et le convertir en une chaîne de calendrier avec ascTime () pas à pas. Nous avons également brièvement expliqué les fonctions supplémentaires nécessaires pour traiter et récupérer ces données, ainsi que la façon de gérer les données TM et Time. Nous espérons que vous avez trouvé cet article utile. Pour plus Indice de linux Articles sur la langue C, utilisez le moteur de recherche sur notre site Web.