C ++ strftime () - Libreria standard C ++

La funzione strftime () in C ++ converte la data e l'ora specificate da una determinata ora del calendario a una stringa di caratteri multibyte terminata da null in base a una stringa di formato.

La funzione strftime () è definita nel file di intestazione.

prototipo strftime ()

 size_t strftime (char * str, size_t count, const char * format, const tm * time);

La funzione strftime () accetta 4 argomenti: str, count, format e time.

Le informazioni su data e ora a cui punta time vengono convertite in un carattere multibyte con terminazione null in base al valore di format e vengono archiviate nell'array a cui punta str. Vengono scritti al massimo i byte di conteggio.

Parametri strftime ()

  • str: puntatore al primo elemento della matrice di caratteri per memorizzare il risultato.
  • count: numero massimo di byte da scrivere.
  • formato: puntatore a una stringa di caratteri multibyte con terminazione null che specifica il formato di conversione. La stringa di formato è costituita da un identificatore di conversione (che inizia con% e facoltativamente seguito da E o O) e altri caratteri ordinari.
    I caratteri ordinari compreso il carattere nullo di terminazione vengono copiati così come sono nella stringa di output. identificatori di formato strftime ()
    Identificatore di conversione Descrizione Campi utilizzati
    % Scrive il carattere%
    n Scrive il carattere di nuova riga
    t Scrive il carattere di tabulazione orizzontale
    Anno
    Y Scrive 4 cifre dell'anno, ad esempio 2011 tm_year
    EY Scrive 4 cifre dell'anno nella rappresentazione alternativa della locale tm_year
    y Scrive le ultime 2 cifre dell'anno, intervallo (00, 99) tm_year
    Oy Scrive le ultime 2 cifre dell'anno nella rappresentazione alternativa della locale tm_year
    Ey Scrive l'anno come offset dal periodo di calendario alternativo della locale% EC (dipendente dalla locale) tm_year
    C Scrive le prime 2 cifre dell'anno, intervallo (00,99) tm_year
    CE Scrive il nome dell'anno base (periodo) nella rappresentazione alternativa della locale, tm_year
    G Scrive l'anno basato sulla settimana secondo ISO 8601, ovvero l'anno che contiene la settimana specificata. tm_year, tm_wday, tm_yday
    g Scrive le ultime 2 cifre dell'anno su base settimanale ISO 8601, ovvero l'anno che contiene la settimana specificata (intervallo (00,99)). tm_year, tm_wday, tm_yday
    Mese
    b Scrive il nome del mese abbreviato, ad esempio Jan tm_mon
    h Uguale a b tm_mon
    B Scrive il nome completo del mese, ad esempio gennaio tm_mon
    m Scrive il mese come numero decimale, intervallo (01,12) tm_mon
    Om Scrive il mese utilizzando il sistema numerico alternativo della locale tm_mon
    Settimana
    U Scrive la settimana dell'anno come numero decimale compreso tra 00 e 53 (la domenica è il primo giorno della settimana) tm_year, tm_wday, tm_yday
    OU Scrive la settimana dell'anno come% U utilizzando il sistema numerico alternativo tm_year, tm_wday, tm_yday
    W Scrive la settimana dell'anno come numero decimale compreso tra 00 e 53 (il lunedì è il primo giorno della settimana) tm_year, tm_wday, tm_yday
    OW Scrive la settimana dell'anno come% W utilizzando il sistema numerico alternativo tm_year, tm_wday, tm_yday
    V Scrive la settimana dell'anno ISO 8601 (intervallo (01,53)). tm_year, tm_wday, tm_yday
    OV Scrive la settimana dell'anno, come% V, utilizzando il sistema numerico alternativo tm_year, tm_wday, tm_yday
    Giorno dell'anno / mese
    j Scrive il giorno dell'anno come numero decimale, intervallo (001,366) tm_yday
    d Scrive il giorno del mese come numero decimale, intervallo (01,31) tm_mday
    Od Scrive il giorno del mese, come% d, utilizzando il sistema numerico alternativo tm_mday
    e Scrive il giorno del mese come numero decimale, intervallo (1,31) tm_mday
    Oe Scrive il giorno del mese, come% e, utilizzando il sistema numerico alternativo tm_mday
    Giorno della settimana
    un Scrive il nome abbreviato del giorno della settimana, ad esempio Fri (dipendente dalla lingua) tm_wday
    UN Scrive il nome completo del giorno della settimana, ad es. Venerdì (dipende dalla lingua) tm_wday
    w Scrive il giorno della settimana come numero decimale, intervallo (0-6) (la domenica è 0) tm_wday
    Ow Scrive il giorno della settimana come% w, utilizzando il sistema numerico alternativo tm_wday
    u Scrive il giorno della settimana come numero decimale, dove lunedì è 1 (formato ISO 8601), intervallo (1-7) tm_wday
    Ou Scrive il giorno della settimana come% u, utilizzando il sistema numerico alternativo tm_wday
    Ora, minuto, secondo
    H Scrive l'ora come numero decimale, intervallo (00,23) tm_hour
    OH Scrive l'ora come% H, utilizzando il sistema numerico alternativo tm_hour
    io Scrive l'ora come numero decimale, intervallo (01,12) tm_hour
    OI Scrive l'ora come% I, utilizzando il sistema numerico alternativo tm_hour
    M Scrive i minuti come numero decimale, intervallo (00,59) tm_min
    OM Scrive i minuti come da% M, utilizzando il sistema numerico alternativo tm_min
    S Scrive il secondo come numero decimale, intervallo (00,60) tm_sec
    OS Scrive il secondo come% S, utilizzando il sistema numerico alternativo tm_sec
    Altro
    c Scrive una stringa di data e ora standard, ad esempio Sun Oct 17 04:41:13 2010 (dipendente dalla lingua) tutti
    Ec Scrive la data alternativa e la stringa dell'ora tutti
    X Scrive la rappresentazione della data localizzata (dipendente dalla locale) tutti
    Ex Scrive la rappresentazione della data alternativa della locale tutti
    X Scrive la rappresentazione dell'ora localizzata (dipendente dalla locale) tutti
    EX Scrive la rappresentazione dell'ora alternativa della locale tutti
    D Equivalente a "% m /% d /% y" tm_mon, tm_mday, tm_year
    F Equivalente a "% Y-% m-% d" tm_mon, tm_mday, tm_year
    r Scrive l'ora localizzata di 12 ore tm_hour, tm_min, tm_sec
    R Equivalente a "% H:% M" tm_hour, tm_min
    T Equivalente a "% H:% M:% S tm_hour, tm_min, tm_sec
    P Scrive am o pm localizzato (dipende dalla lingua) tm_hour
    z scrive l'offset da UTC nel formato ISO 8601 (ad es. -0545) o nessun carattere se le informazioni sul fuso orario non sono disponibili tm_isdst
    Z Scrive il nome o l'abbreviazione del fuso orario o nulla se le informazioni sul fuso orario non sono disponibili (dipende dalla lingua) tm_isdst
  • ora: la data e l'ora da convertire.

strftime () Restituisce il valore

  • In caso di successo, la funzione strftime () restituisce il numero di byte scritti nell'array di caratteri puntato da str escluso il carattere di terminazione " 0".
  • Se il conteggio è stato raggiunto prima che l'intera stringa potesse essere memorizzata, viene restituito 0 e il contenuto non è definito.

Esempio: come funziona la funzione strftime ()?

 #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; )

Quando esegui il programma, l'output sarà:

 Oggi è il 21 aprile 2017 L'ora corrente è 11:20:42

Articoli interessanti...