A função strftime () em C ++ converte a data e hora fornecidas de um determinado tempo do calendário em uma string de caracteres multibyte terminada em nulo de acordo com uma string de formato.
A função strftime () é definida no arquivo de cabeçalho.
protótipo strftime ()
size_t strftime (char * str, size_t count, const char * formato, const tm * time);
A função strftime () leva 4 argumentos: str, count, format e time.
As informações de data e hora apontadas por time são convertidas em um caractere multibyte terminado em nulo com base no valor de format e são armazenadas na matriz apontada por str. No máximo, os bytes de contagem são gravados.
Parâmetros strftime ()
- str: Ponteiro para o primeiro elemento da matriz de caracteres para armazenar o resultado.
- contagem: número máximo de bytes a serem gravados.
- formato: Ponteiro para uma string de caracteres multibyte terminada em nulo especificando o formato de conversão. A string de formato consiste no especificador de conversão (começando com% e opcionalmente seguido por E ou O) e outros caracteres comuns.
Os caracteres comuns, incluindo o caractere nulo de terminação, são copiados como estão para a string de saída. especificadores de formato strftime ()Especificador de conversão Descrição Campos Usados % Escreve o personagem% n Escreve caractere de nova linha t Escreve o caractere de tabulação horizontal Ano Y Escreve 4 dígitos do ano, por exemplo, 2011 tm_year EY Grava 4 dígitos do ano na representação alternativa do local tm_year y Escreve os últimos 2 dígitos do ano, intervalo (00, 99) tm_year Oi Grava os últimos 2 dígitos do ano na representação alternativa do local tm_year Ey Grava o ano como compensação do período alternativo do calendário da localidade% EC (dependente da localidade) tm_year C Escreve os primeiros 2 dígitos do ano, intervalo (00,99) tm_year CE Escreve o nome do ano base (período) na representação alternativa da localidade, tm_year G Grava o ano ISO 8601 com base na semana, ou seja, o ano que contém a semana especificada. tm_year, tm_wday, tm_yday g Escreve os últimos 2 dígitos do ano ISO 8601 com base na semana, ou seja, o ano que contém a semana especificada (intervalo (00,99)). tm_year, tm_wday, tm_yday Mês b Escreve o nome abreviado do mês, por exemplo, Jan tm_mon h Igual a b tm_mon B Escreve o nome completo do mês, por exemplo, janeiro tm_mon m Escreve o mês como um número decimal, intervalo (01,12) tm_mon Om Grava o mês usando o sistema numérico alternativo do local tm_mon Semana você Escreve a semana do ano como um número decimal de 00 a 53 (domingo é o primeiro dia da semana) tm_year, tm_wday, tm_yday OU Escreve a semana do ano como por% U usando o sistema numérico alternativo tm_year, tm_wday, tm_yday W Escreve a semana do ano como um número decimal de 00 a 53 (segunda-feira é o primeiro dia da semana) tm_year, tm_wday, tm_yday OW Escreve a semana do ano como por% W usando o sistema numérico alternativo tm_year, tm_wday, tm_yday V Grava ISO 8601 semana do ano (intervalo (01,53)). tm_year, tm_wday, tm_yday OV Escreve a semana do ano, como por% V, usando o sistema numérico alternativo tm_year, tm_wday, tm_yday Dia do ano / mês j Escreve o dia do ano como um número decimal, intervalo (001.366) tm_yday d Escreve o dia do mês como um número decimal, intervalo (01,31) tm_mday Od Escreve o dia do mês, como por% d, usando o sistema numérico alternativo tm_mday e Escreve o dia do mês como um número decimal, intervalo (1,31) tm_mday Oe Escreve o dia do mês, como por% e, usando o sistema numérico alternativo tm_mday Dia da semana uma Escreve o nome abreviado do dia da semana, por exemplo, Sex (dependente da localidade) tm_wday UMA Escreve o nome completo do dia da semana, por exemplo, sexta-feira (dependente da localidade) tm_wday W Escreve o dia da semana como um número decimal, intervalo (0-6) (domingo é 0) tm_wday Ai Escreve o dia da semana como por% w, usando o sistema numérico alternativo tm_wday você Escreve o dia da semana como um número decimal, onde segunda-feira é 1 (formato ISO 8601), intervalo (1-7) tm_wday Ou Escreve o dia da semana como por% u, usando o sistema numérico alternativo tm_wday Hora, minuto, segundo H Escreve a hora como um número decimal, intervalo (00,23) tm_hour OH Escreve a hora como por% H, usando o sistema numérico alternativo tm_hour Eu Escreve a hora como um número decimal, intervalo (01,12) tm_hour OI Escreve a hora como por% I, usando o sistema numérico alternativo tm_hour M Escreve o minuto como um número decimal, intervalo (00,59) tm_min OM Escreve minuto como por% M, usando o sistema numérico alternativo tm_min S Escreve o segundo como um número decimal, intervalo (00,60) tm_sec SO Escreve em segundo lugar como por% S, usando o sistema numérico alternativo tm_sec De outros c Grava a string de data e hora padrão, por exemplo, Dom, 17 de outubro, 04:41:13 de 2010 (dependente da localidade) todos Ec Grava a string alternativa de data e hora do local todos x Grava representação de data localizada (dependente da localidade) todos Ex Grava a representação de data alternativa do local todos X Grava representação de tempo localizada (dependente da localidade) todos EX Grava a representação de tempo alternativa da localidade todos 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 Grava o relógio de 12 horas localizado 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 Escreve am ou pm localizado (dependente da localidade) tm_hour z grava o deslocamento do UTC no formato ISO 8601 (por exemplo, -0545), ou nenhum caractere se a informação de fuso horário não estiver disponível tm_isdst Z Escreve o nome ou a abreviatura do fuso horário ou nada se as informações do fuso horário não estiverem disponíveis (dependendo da localidade) tm_isdst - hora: as informações de data e hora a serem convertidas.
strftime () Valor de retorno
- Em caso de sucesso, a função strftime () retorna o número de bytes escritos no array de caracteres apontado por str sem incluir o final ' 0'.
- Se a contagem foi alcançada antes que toda a string pudesse ser armazenada, 0 é retornado e o conteúdo é indefinido.
Exemplo: Como funciona a função 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 você executa o programa, a saída será:
Hoje é 21 de abril de 2017. A hora atual é 11:20:42