C ++ strftime () - C ++ Standard Library

Strftime () -funktio C ++: ssa muuntaa annetun päivämäärän ja kellonajan tietystä kalenteriaikasta nollapäätetyksi monitavuiseksi merkkijonoksi muotomerkkijonon mukaan.

Strftime () -funktio määritetään otsikkotiedostossa.

strftime () -prototyyppi

 size_t strftime (char * str, size_t count, const char * -muoto, const tm * aika);

Strftime () -funktiossa on neljä argumenttia: str, count, muoto ja aika.

Ajan osoittama päivämäärä- ja aikatieto muunnetaan nollapäätteiseksi monitavuiseksi merkiksi muodon arvon perusteella ja tallennetaan taulukkoon, johon str merkitsee. Enintään laskutavut kirjoitetaan.

strftime () -parametrit

  • str: Merkkijonorakenteen ensimmäisen osan osoitin tuloksen tallentamiseksi.
  • count: Suurin tavujen määrä kirjoittaa.
  • muoto: Osoitin nollapäätteiseen monitavuiseen merkkijonoon, joka määrittää muunnoksen muodon. Formaattimerkkijono koostuu muunnosmäärittimestä (alkaa prosentilla ja mahdollisesti E tai O jälkeen) ja muista tavallisista merkeistä.
    Tavalliset merkit, mukaan lukien lopetettava nollamerkki, kopioidaan sellaisenaan lähtömerkkijonoon. strftime () -määritelmät
    Muunnoksen määrittelijä Kuvaus Käytetyt kentät
    % Kirjoittaa merkin%
    n Kirjoittaa uuden rivin merkin
    t Kirjoittaa vaakasuoran välilehden merkin
    Vuosi
    Y Kirjoittaa 4 numeroa vuotta, esim. 2011 tm_vuosi
    EY Kirjoittaa 4 numeroa vuotta kielen vaihtoehtoisessa esityksessä tm_vuosi
    y Kirjoittaa viimeiset 2 numeroa vuodessa, alue (00, 99) tm_vuosi
    Oy Kirjoittaa vuoden kaksi viimeistä numeroa kielen vaihtoehtoisessa esityksessä tm_vuosi
    Ey Kirjoittaa vuoden korvauksena sijaintipaikan vaihtoehtoisesta kalenterijaksosta% EC (kieliversiosta riippuva) tm_vuosi
    C Kirjoittaa vuoden 2 ensimmäistä numeroa, alue (00,99) tm_vuosi
    EY Kirjoittaa perusvuoden (jakson) nimen sijainnin vaihtoehtoiseen esitykseen, tm_vuosi
    G Kirjoittaa ISO 8601 -viikkopohjaisen vuoden, eli vuoden, joka sisältää määritetyn viikon. tm_vuosi, tm_wday, tm_yday
    g Kirjoittaa viimeiset kaksi numeroa ISO 8601 -viikkopohjaista vuotta eli vuoden, joka sisältää määritetyn viikon (alue (00,99)). tm_vuosi, tm_wday, tm_yday
    Kuukausi
    b Kirjoittaa lyhennetyn kuukauden nimen, esim. Tammikuu tm_mon
    h Sama kuin b tm_mon
    B Kirjoittaa koko kuukauden nimen, esim. Tammikuu tm_mon
    m Kirjoittaa kuukauden desimaalilukuna, alue (01,12) tm_mon
    Om Kirjoittaa kuukauden käyttäen kielen vaihtoehtoista numeerista järjestelmää tm_mon
    Viikko
    U Kirjoittaa vuoden viikon desimaalilukuna välillä 00–53 (sunnuntai on viikon ensimmäinen päivä) tm_vuosi, tm_wday, tm_yday
    OU Kirjoitetaan vuoden viikko prosentteina% U käyttäen vaihtoehtoista numeerista järjestelmää tm_vuosi, tm_wday, tm_yday
    W Kirjoittaa vuoden viikon desimaalilukuna välillä 00–53 (maanantai on viikon ensimmäinen päivä) tm_vuosi, tm_wday, tm_yday
    OW Kirjoitetaan vuoden viikko prosentteina% W käyttäen vaihtoehtoista numeerista järjestelmää tm_vuosi, tm_wday, tm_yday
    V Kirjoittaa ISO 8601 -viikon vuodessa (alue (01,53)). tm_vuosi, tm_wday, tm_yday
    OV Kirjoittaa vuoden viikon,% V: llä, käyttämällä vaihtoehtoista numeerista järjestelmää tm_vuosi, tm_wday, tm_yday
    Vuoden / kuukauden päivä
    j Kirjoittaa vuoden päivän desimaalilukuna, välin (001 366) tm_yday
    d Kirjoittaa kuukauden päivän desimaalilukuna, alue (01,31) tm_päivä
    Od Kirjoittaa kuukauden päivän prosenttimäärällä% d käyttäen vaihtoehtoista numeerista järjestelmää tm_päivä
    e Kirjoittaa kuukauden päivän desimaalilukuna, alue (1,31) tm_päivä
    Oe Kirjoittaa kuukauden päivän prosentteina% e käyttäen vaihtoehtoista numeerista järjestelmää tm_päivä
    Viikonpäivä
    a Kirjoittaa lyhennetyn viikonpäivän nimen, esim. Pe (kielikohtainen) tm_wday
    A Kirjoittaa koko arkipäivän nimen, esim. Perjantai (kielikohtainen) tm_wday
    w Kirjoittaa viikonpäivän desimaalilukuna, alue (0-6) (sunnuntai on 0) tm_wday
    Oi Kirjoittaa viikonpäivän prosentteina% w käyttäen vaihtoehtoista numeerista järjestelmää tm_wday
    u Kirjoittaa viikonpäivän desimaalilukuna, jossa maanantai on 1 (ISO 8601 -muoto), alue (1-7) tm_wday
    Ou Kirjoittaa viikonpäivän prosentteina% u käyttäen vaihtoehtoista numeerista järjestelmää tm_wday
    Tunti, minuutti, sekunti
    H Kirjoittaa tunnin desimaalilukuna, alue (00,23) tm_tunti
    VAI NIIN Kirjoittaa tunnin% H: na käyttäen vaihtoehtoista numeerista järjestelmää tm_tunti
    Minä Kirjoittaa tunnin desimaalilukuna, alueen (01,12) tm_tunti
    OI Kirjoittaa tunnin prosentteina% I käyttäen vaihtoehtoista numeerista järjestelmää tm_tunti
    M Kirjoittaa minuutin desimaalilukuna, alue (00,59) tm_min
    OM Kirjoittaa minuutit prosentteina M käyttäen vaihtoehtoista numeerista järjestelmää tm_min
    S Kirjoitetaan toisena desimaalilukuna, alue (00,60) tm_sek
    Käyttöjärjestelmä Kirjoitetaan toisena% S: llä käyttäen vaihtoehtoista numeerista järjestelmää tm_sek
    Muu
    c Kirjoittaa normaalin päivämäärä- ja aikamerkkijonon, esim. Su 17. lokakuuta 04:41:13 2010 (aluekohtainen) kaikki
    Ec Kirjoittaa kielen vaihtoehtoisen päivämäärä- ja aikamerkkijonon kaikki
    x Kirjoittaa lokalisoidun päivämäärän esityksen (alueesta riippuva) kaikki
    Esim Kirjoittaa kielen vaihtoehtoisen päivämäärän esityksen kaikki
    X Kirjoittaa lokalisoidun ajan esityksen (riippuu kielestä) kaikki
    EX Kirjoittaa kielen vaihtoehtoisen ajanesityksen kaikki
    D Vastaa "% m /% d /% y" tm_mon, tm_mday, tm_year
    F Vastaa "% Y-% m-% d" tm_mon, tm_mday, tm_year
    r Kirjoittaa lokalisoidun 12 tunnin kellonajan tm_tunti, tm_min, tm_sek
    R Vastaa "% H:% M" tm_tunti, tm_min
    T Vastaa "% H:% M:% S tm_tunti, tm_min, tm_sek
    P Kirjoittaa lokalisoidun am tai pm (lokaleista riippuva) tm_tunti
    z kirjoittaa siirtymän UTC: stä ISO 8601 -muodossa (esim. -0545) tai ei merkkejä, jos aikavyöhyketietoja ei ole käytettävissä tm_isdst
    Z Kirjoittaa aikavyöhykkeen nimen tai lyhenteen tai ei mitään, jos aikavyöhyketietoja ei ole saatavana (riippuu kielialueesta) tm_isdst
  • aika: muunnettava päivämäärä ja kellonaika.

strftime () Palautusarvo

  • Menestyksessä strftime () -funktio palauttaa merkkitaulukkoon kirjoitettujen tavujen lukumäärän, johon str on osoittanut, lukuun ottamatta loppua ' 0'.
  • Jos määrä saavutettiin ennen kuin koko merkkijono voidaan tallentaa, 0 palautetaan ja sisältöä ei määritellä.

Esimerkki: Kuinka strftime () -toiminto toimii?

 #include #include using namespace std; int main() ( time_t curr_time; tm * curr_tm; char date_string(100); char time_string(100); time(&curr_time); curr_tm = localtime(&curr_time); strftime(date_string, 50, "Today is %B %d, %Y", curr_tm); strftime(time_string, 50, "Current time is %T", curr_tm); cout << date_string << endl; cout << time_string << endl; return 0; )

Kun suoritat ohjelmaa, tulos on:

 Tänään on 21. huhtikuuta 2017. Kellonaika on 11:20:42

Mielenkiintoisia artikkeleita...