Omgjøring av en dato til en streng

C:
Omgjøring av en dato til en streng

Hvordan:

Funksjonen strftime fra biblioteket <time.h> brukes vanligvis til dette formålet. Den lar deg formatere dato og tid på en rekke måter ved å spesifisere format-spesifikatorer. Her er et raskt eksempel:

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

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

    // Konverter dato & tid til streng (f.eks., "Wed Jun 30 21:49:08 2021")
    strftime(dateStr, sizeof(dateStr), "%a %b %d %H:%M:%S %Y", ptm);
    
    printf("Nåværende dato og tid: %s\n", dateStr);
    return 0;
}

Et eksempel på utdata kan se slik ut:

Nåværende dato og tid: Wed Jun 30 21:49:08 2021

Du kan tilpasse formatet ved å endre format-spesifikatorene som sendes til strftime. For eksempel, for å få datoen i formatet YYYY-MM-DD, ville du bruke "%Y-%m-%d".

Dypdykk

Funksjonen strftime og biblioteket <time.h> er en del av C Standard Library, som går tilbake til den opprinnelige ANSI C-standarden (C89/C90). Selv om denne tilnærmingsmåten er grei og støttet på mange plattformer, kan den virke lavnivå og tungvint sammenlignet med moderne programmeringsspråk som tilbyr mer intuitive dato- og tidsbiblioteker.

Det bør merkes at selv om tidsfunksjonene i C-standardbiblioteket er bredt støttet og relativt enkle å bruke, mangler de noen av de mer komplekse tidssone-manipulasjons- og internasjonaliseringsfunksjonene som finnes i biblioteker av nyere språk eller tredjeparts C-biblioteker som International Components for Unicode (ICU).

Imidlertid gjør strftime-funksjonens tilpasningsdyktighet og brede plattformstøtte den til et pålitelig og nyttig verktøy for datostrengskonvertering i C. Programmerere som kommer fra språk med høyere nivå datotid-biblioteker kan trenge å justere seg til dens lavnivå natur, men vil finne den bemerkelsesverdig kraftig og allsidig for formatering av datoer og tider for en rekke applikasjoner.