Convertire una data in una stringa

C:
Convertire una data in una stringa

Come fare:

La funzione strftime della libreria <time.h> è comunemente usata per questo scopo. Ti permette di formattare la data e l’ora in vari modi specificando dei formati. Ecco un esempio veloce:

#include <stdio.h>
#include <time.h>

int main() {
    char dateStr[100];
    time_t ora = time(NULL);
    struct tm *ptm = localtime(&ora);

    // Converte la data e l'ora in una stringa (es., "Mer Giu 30 21:49:08 2021")
    strftime(dateStr, sizeof(dateStr), "%a %b %d %H:%M:%S %Y", ptm);
    
    printf("Data e Ora correnti: %s\n", dateStr);
    return 0;
}

L’output di esempio potrebbe essere questo:

Data e Ora correnti: Mer Giu 30 21:49:08 2021

Puoi personalizzare il formato cambiando i formati specificati passati a strftime. Per esempio, per ottenere la data nel formato AAAA-MM-GG, dovresti usare "%Y-%m-%d".

Approfondimento

La funzione strftime e la libreria <time.h> fanno parte della Standard Library di C, che risale allo standard ANSI C originale (C89/C90). Anche se diretto e supportato su molte piattaforme, questo approccio può sembrare di basso livello e ingombrante se confrontato con i linguaggi di programmazione moderni che offrono librerie di date e orari più intuitive.

Si dovrebbe notare, mentre le funzioni di tempo della libreria standard di C sono ampiamente supportate e relativamente semplici da usare, mancano di alcune delle caratteristiche più complesse di manipolazione dei fusi orari e di internazionalizzazione trovate in librerie di linguaggi più nuovi o in librerie C di terze parti come i Componenti Internazionali per Unicode (ICU).

Tuttavia, le capacità di personalizzazione della funzione strftime e il suo ampio supporto alle piattaforme la rendono uno strumento affidabile e utile per la conversione di stringhe di date in C. I programmatori provenienti da linguaggi con librerie datetime di alto livello potrebbero dover adattarsi alla sua natura di basso livello, ma la troveranno sorprendentemente potente e versatile per formattare date e orari per una varietà di applicazioni.