C:
Päivämäärän muuttaminen merkkijonoksi
Kuinka:
<time.h>
kirjaston strftime
funktiota käytetään yleisesti tähän tarkoitukseen. Se mahdollistaa päivämäärän ja ajan muotoilun monin eri tavoin määrittämällä muotoiluspesifikaattoreita. Tässä on nopea esimerkki:
#include <stdio.h>
#include <time.h>
int main() {
char dateStr[100];
time_t now = time(NULL);
struct tm *ptm = localtime(&now);
// Muunna päivämäärä & aika merkkijonoksi (esim. "Wed Jun 30 21:49:08 2021")
strftime(dateStr, sizeof(dateStr), "%a %b %d %H:%M:%S %Y", ptm);
printf("Nykyinen päivämäärä ja aika: %s\n", dateStr);
return 0;
}
Esimerkkituloste voisi näyttää tältä:
Nykyinen päivämäärä ja aika: Wed Jun 30 21:49:08 2021
Voit räätälöidä muodon vaihtamalla strftime
-funktiolle annettavia muotoiluspesifikaattoreita. Esimerkiksi saadaksesi päivämäärän muodossa VVVV-KK-PP
, käyttäisit "Y-%m-%d"
.
Syväsukellus
strftime
funktio ja <time.h>
kirjasto ovat osa C Standard Kirjastoa, joka juontaa juurensa alkuperäiseen ANSI C standardiin (C89/C90). Vaikka suoraviivainen ja laajalti tuettu monilla alustoilla, tämä lähestymistapa voi tuntua matalan tason ja hankalalta verrattuna moderneihin ohjelmointikieliin, jotka tarjoavat intuitiivisempia päivämäärä- ja aikakirjastoja.
Tulisi huomata, vaikkakin C standardikirjaston aikatoiminnot ovat laajalti tuetut ja suhteellisen yksinkertaisia käyttää, ne kaipaavat joitakin monimutkaisempia aikavyöhykkeiden käsittelyn ja kansainvälistämisen ominaisuuksia, jotka löytyvät uudempien kielten kirjastoista tai kolmansien osapuolien C kirjastoista, kuten International Components for Unicode (ICU).
Kuitenkin, strftime
funktion muokkausominaisuudet ja laaja alustatuki tekevät siitä luotettavan ja hyödyllisen työkalun päivämäärämerkkijonon muuntamiseen C:ssä. Ohjelmoijien, jotka tulevat kielistä, joissa on korkeamman tason datetime-kirjastoja, saattaa olla tarpeen sopeutua sen matalan tason luonteeseen, mutta he huomaavat sen erittäin tehokkaaksi ja monipuoliseksi välineeksi päivämäärien ja aikojen muotoiluun monenlaisiin sovelluksiin.