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ätMuunnoksen 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