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