Funzione asctime in lingua c

Funzione asctime in lingua c
I dati del tempo sono calcolati da secondi dalle 00:00:00 UTC il 1 ° gennaio 1970 GMT o UNIX. Per utilizzare questi dati in un formato leggibile umano, è necessario convertire il tempo di Unix in una data di tempo e quindi in una stringa.

In questo Suggerimento Linux Articolo, spiegheremo come usare asctime () Per recuperare i dati temporali dal calendario del sistema e convertirli in una stringa. Esploreremo la descrizione teorica della struttura di questi dati TM, la sintassi della funzione e i suoi argomenti di input e output insieme ai tipi di dati che ciascuno di essi supporta. Implementeremo quindi l'uso di questa funzione con esempi pratici usando frammenti di codice e immagini.

Sintassi della funzione asctime () in lingua

Char * strime (const struct tm * tm_ptr);

Descrizione della funzione asctime () nella lingua C

IL asctime () La funzione recupera le informazioni dalla struct tm che è indicata da *tm_ptr puntatore, lo converte in una stringa e restituisce il suo puntatore *str.

Il formato che viene restituito da questa funzione nella stringa di output è il seguente:

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

Entrambi i giorni e i mesi sono rappresentati dalle prime tre lettere dei loro nomi. Le date sono rappresentate da due cifre per i giorni e i mesi e quattro cifre per l'anno. La stringa corrispondente a str contiene un carattere speciale \ n \ 0 alla fine.

IL asctime () funzione e le sue variabili sono definite nel "tempo.H ”intestazione. Per usarli, dobbiamo includerli nel nostro ".C "o".file h "come segue:

#includere

Come ottenere l'ora locale in formato stringa con la funzione asctime () nella lingua C

In questo esempio, ti mostreremo passo dopo passo su come usare il asctime () funzione per ottenere i dati temporali UNIX e i tempi locali nella struttura TM e quindi convertirli in una stringa di caratteri leggibili dall'uomo.

Come abbiamo spiegato nell'introduzione, il tempo di sistema viene calcolato dal tempo UNIX. Pertanto, dobbiamo ottenere questa volta prima con la funzione time () time_t.

Nel seguente frammento, il tempo () ottiene il tempo di Unix U_time e lo stampa sulla console di comando:

#includere
#includere
void main ()

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

La seguente immagine visualizza il tempo UNIX che viene restituito in U_time.

Una volta ottenuto il tempo da Unix, dobbiamo convertire questi dati in un tempo locale o GMT e archiviarli nella struttura intero, tm.

Ogni intero in questa struttura rappresenta secondi, minuti, ore, giorni, ecc. Più tardi, daremo una descrizione più dettagliata delle variabili contenute in questa struttura e come puoi accedervi ciascuno di esse.

I dati della struttura TM possono essere l'ora locale in cui si ottiene ora locale() o il tempo GMT con gmtime ().

Entrambe le funzioni hanno il tempo UNIX ottenuto con U_time come argomento input e restituire il puntatore tm_ptr Di tm, che dobbiamo definire in anticipo come mostrato nel seguente:

#includere
#includere
void main ()

..
struct tm *tm_ptr; // definisce tm_ptr come puntatore a tm
..

È importante notare che sia il tempo unix U_time e i dati TM vengono aggiornati ogni volta che viene chiamata una delle funzioni che recuperano questi dati. Altrimenti, i dati dell'ultima chiamata rimangono archiviati nelle loro variabili.

Nel seguente frammento di codice, vediamo come recuperare i dati dell'ora locale nella struttura TM utilizzando la funzione locale (). Quando si chiama questa funzione, è necessario passare il tempo da Unix come argomento di input e il puntatore a TM come argomento di output.

tm_ptr = localtime (& u_time);

In questo modo, abbiamo già convertito il tempo da Unix all'ora locale e lo abbiamo immagazzinato nella struttura TM. Dobbiamo solo convertire questi dati in una stringa con asctime ().

Nel seguente frammento, vediamo il codice per ottenere il tempo da Unix. Calcola questi dati e memorizzali in TM Struttura. Quindi, usiamo asctime () per convertire i numeri interi della struttura a cui è indicato *tm_ptr alle corde.

Questa funzione restituisce la stringa a cui è indicata *str_ptr Nel suo argomento di output.

Infine, emettiamo la stringa ottenuta nella console di comando usando printf ().

#includere
#includere
void main ()

time_tu_time; // definisce u_time come output del tempo ()
const char*str_ptr; // Definisci il puntatore della stringa
struct tm *tm_ptr; // definisce tm_ptr come puntatore a tm
U_time = time (null); // Abbiamo il tempo UTC in u_time
tm_ptr = localtime (& u_time); // Ottiamo l'ora locale in TM
str_ptr = asctime (tm_ptr); // converti TM in stringa
printf ("L'ora locale è: %s \ n", str_ptr);

La seguente immagine mostra il risultato di questo codice:

IL Tm struct

IL tm struttura e la time_t E clock_t Le variabili sono strutture predefinite e tipi di dati nel "tempo.H ”intestazione e vengono utilizzati per archiviare i risultati che vengono restituiti da alcune delle funzioni definite lì.

Guardiamo ora la struttura dell'intero TM e i nomi delle singole variabili che lo compongono:

structttm
intttm_sec; // secondi (0-61)
intttm_min; // minuti (0-59)
intttm_hour; // ore (0-23)
intttm_mday; // giorno (1-31)
intttm_mon; // mese (0-11)
intttm_year; // anni dal 1970
intttm_wday; // giorni feriali (0-6; domenica = 0)
intttm_yday; // giorno dell'anno (0-365)
intttm_isdst; // Time estivo 1 = Sì; 0 = no; -1 = indefinito
;

Conclusione

In questo Suggerimento Linux Articolo, abbiamo spiegato come ottenere il tempo del sistema UNIX e convertirlo in una stringa di calendario con asctime () passo dopo passo. Abbiamo anche spiegato brevemente le funzioni aggiuntive necessarie per elaborare e recuperare questi dati, nonché come gestire i dati TM e tempo. Speriamo che tu abbia trovato questo articolo utile. Per più Suggerimento Linux Articoli sulla lingua C, usa il motore di ricerca sul nostro sito Web.