Omvandla ett datum till en sträng

C:
Omvandla ett datum till en sträng

Hur man gör:

Funktionen strftime från biblioteket <time.h> används vanligtvis för detta ändamål. Den låter dig formatera datum och tid på en mängd olika sätt genom att specificera format specifierare. Här är ett snabbt exempel:

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

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

    // Konvertera datumet & tiden till en sträng (t.ex. "Wed Jun 30 21:49:08 2021")
    strftime(dateStr, sizeof(dateStr), "%a %b %d %H:%M:%S %Y", ptm);
    
    printf("Aktuellt Datum och Tid: %s\n", dateStr);
    return 0;
}

Ett exempel på utskrift kan se ut så här:

Aktuellt Datum och Tid: Wed Jun 30 21:49:08 2021

Du kan anpassa formatet genom att byta format specifierarna som skickas till strftime. Till exempel, för att få datumet i formatet YYYY-MM-DD, skulle du använda "%Y-%m-%d".

Fördjupning

Funktionen strftime och biblioteket <time.h> är en del av C:s standardbibliotek, som går tillbaka till den ursprungliga ANSI C-standarden (C89/C90). Även om detta tillvägagångssätt är rakt på sak och stöds på många plattformar, kan det verka lågnivå och omständligt jämfört med moderna programmeringsspråk som erbjuder mer intuitiva datum- och tidsbibliotek.

Man bör notera, även om C:s standardbibliotekes tidsfunktioner är brett stödda och relativt enkla att använda, saknar de vissa av de mer komplexa funktionerna för tidszonsmanipulation och internationalisering som finns i bibliotek för nyare språk eller tredjeparts C-bibliotek som International Components for Unicode (ICU).

Dock gör strftime-funktionens anpassningsförmåga och breda plattformsstöd den till ett pålitligt och användbart verktyg för datumsträngskonvertering i C. Programmerare som kommer från språk med högre nivå av datumtidsbibliotek kan behöva justera sig till dess lågnivånatur men kommer att finna det anmärkningsvärt kraftfullt och mångsidigt för att formatera datum och tider för en mängd olika tillämpningar.