Funzione libreria C - strftime ()

Descrizione

La funzione di libreria C. size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr) formatta l'ora rappresentata nella struttura timeptr secondo le regole di formattazione definite in format e memorizzato in str.

Dichiarazione

Di seguito è riportata la dichiarazione per la funzione strftime ().

size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)

Parametri

  • str - Questo è il puntatore all'array di destinazione in cui viene copiata la stringa C risultante.

  • maxsize - Questo è il numero massimo di caratteri da copiare in str.

  • format- Questa è la stringa C contenente qualsiasi combinazione di caratteri regolari e specificatori di formato speciali. Questi identificatori di formato sono sostituiti dalla funzione ai valori corrispondenti per rappresentare l'ora specificata in tm. Gli specificatori di formato sono:

Specifier Sostituito da Esempio
%un Nome abbreviato del giorno della settimana Sole
%UN Nome completo del giorno della settimana Domenica
% b Nome del mese abbreviato Mar
% B Nome completo del mese marzo
% c Rappresentazione di data e ora Domenica 19 agosto 02:56:02 2012
% d Giorno del mese (01-31) 19
% H Ora in formato 24 ore (00-23) 14
%IO Ora in formato 12 ore (01-12) 05
% j Giorno dell'anno (001-366) 231
% m Mese come numero decimale (01-12) 08
% M Minuto (00-59) 55
% p Designazione AM o PM PM
%S Secondo (00-61) 02
% U Numero della settimana con la prima domenica come primo giorno della prima settimana (00-53) 33
% w Giorno della settimana come numero decimale con domenica come 0 (0-6) 4
% W Numero della settimana con il primo lunedì come primo giorno della prima settimana (00-53) 34
%X Rappresentazione della data 19/08/12
%X Rappresentazione del tempo 02:50:06
% y Anno, ultime due cifre (00-99) 01
% Y Anno 2012
% Z Nome o abbreviazione del fuso orario CDT
%% Un segno %
  • timeptr - Questo è il puntatore a una struttura tm che contiene un orario del calendario suddiviso nei suoi componenti come mostrato di seguito -

struct tm {
   int tm_sec;         /* seconds,  range 0 to 59          */
   int tm_min;         /* minutes, range 0 to 59           */
   int tm_hour;        /* hours, range 0 to 23             */
   int tm_mday;        /* day of the month, range 1 to 31  */
   int tm_mon;         /* month, range 0 to 11             */
   int tm_year;        /* The number of years since 1900   */
   int tm_wday;        /* day of the week, range 0 to 6    */
   int tm_yday;        /* day in the year, range 0 to 365  */
   int tm_isdst;       /* daylight saving time             */	
};

Valore di ritorno

Se la stringa C risultante rientra in caratteri inferiori alla dimensione (che include il carattere null di terminazione), viene restituito il numero totale di caratteri copiati in str (escluso il carattere null di terminazione) altrimenti restituisce zero.

Esempio

L'esempio seguente mostra l'utilizzo della funzione strftime ().

#include <stdio.h>
#include <time.h>

int main () {
   time_t rawtime;
   struct tm *info;
   char buffer[80];

   time( &rawtime );

   info = localtime( &rawtime );

   strftime(buffer,80,"%x - %I:%M%p", info);
   printf("Formatted date & time : |%s|\n", buffer );
  
   return(0);
}

Compiliamo ed eseguiamo il programma sopra che produrrà il seguente risultato:

Formatted date & time : |08/23/12 - 12:40AM|