Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Formatar uma cadeia de caracteres de tempo.
Sintaxe
size_t strftime(
char *strDest,
size_t maxsize,
const char *format,
const struct tm *timeptr
);
size_t _strftime_l(
char *strDest,
size_t maxsize,
const char *format,
const struct tm *timeptr,
_locale_t locale
);
size_t wcsftime(
wchar_t *strDest,
size_t maxsize,
const wchar_t *format,
const struct tm *timeptr
);
size_t _wcsftime_l(
wchar_t *strDest,
size_t maxsize,
const wchar_t *format,
const struct tm *timeptr,
_locale_t locale
);
Parâmetros
strDest
Cadeia de caracteres de saída.
maxsize
Tamanho do strDest buffer, medido em caracteres (char ou wchar_t).
format
Cadeia de caracteres de controle de formato.
timeptr
tm estrutura de dados.
locale
A localidade a ser usada.
Valor de retorno
strftime Devolve o número de carateres colocados strDest e wcsftime devolve o número correspondente de carateres largos.
Se o número total de caracteres, incluindo o nulo de terminação, for maior que maxsize, ambos strftime e wcsftime retornar 0 e o conteúdo de strDest são indeterminados.
O número de caracteres é strDest igual ao número de caracteres literais no format, mais quaisquer caracteres que possam ser adicionados por format meio de códigos de formatação. O nulo de terminação de uma cadeia de caracteres não é contado no valor de retorno.
Observações
As strftime funções e wcsftime formatam o valor de tm tempo de timeptr acordo com o argumento fornecido format e armazenam o resultado no buffer strDest. No máximo, maxsize os caracteres são colocados na cadeia de caracteres. Para obter uma descrição dos campos na timeptr estrutura, consulte asctime.
wcsftime é o equivalente de caracteres largos de ; seu argumento de ponteiro de cadeia de caracteres aponta para uma cadeia de strftimecaracteres largos. Estas funções comportam-se de forma idêntica.
Esta função valida os seus parâmetros. Se strDest, formatou timeptr for um ponteiro nulo, ou se a estrutura de dados endereçada tm por timeptr for inválida (por exemplo, se contiver valores fora do intervalo para a hora ou data), ou se a format cadeia de caracteres contiver um código de formatação inválido, o manipulador de parâmetros inválido será invocado, conforme descrito em Validação de parâmetro. Se a execução for permitida para continuar, a função retorna 0 e define errno como EINVAL.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.
Mapeamentos de rotina de texto genérico
TCHAR.H rotina |
_UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
|---|---|---|---|
_tcsftime |
strftime |
strftime |
wcsftime |
O format argumento consiste em um ou mais códigos, como em printf, os códigos de formatação são precedidos por um sinal de porcentagem (%). Os caracteres que não começam com % são copiados inalterados para strDest. A LC_TIME categoria da localidade atual afeta a formatação de saída do strftime. Para obter mais informações sobre LC_TIMEo , consulte setlocale. As strftime funções e wcsftime usam a localidade definida no momento. As _strftime_l versões e _wcsftime_l dessas funções são idênticas, exceto que elas tomam a localidade como um parâmetro e usam isso em vez da localidade definida atualmente. Para obter mais informações, consulte Locale.
As strftime funções suportam estes códigos de formatação:
| Código | String de substituição |
|---|---|
%a |
Nome abreviado do dia da semana na localidade |
%A |
Nome completo do dia da semana na localidade |
%b |
Nome abreviado do mês na localidade |
%B |
Nome completo do mês na localidade |
%c |
Representação de data e hora apropriada para localidade |
%C |
O ano dividido por 100 e truncado para um inteiro, como um número decimal (00−99) |
%d |
Dia do mês como um número decimal (01 - 31) |
%D |
Equivalente a %m/%d/%y |
%e |
Dia do mês como um número decimal (1 - 31), onde dígitos únicos são precedidos por um espaço |
%F |
Equivalente a %Y-%m-%d |
%g |
Os últimos 2 dígitos do ano baseado na semana ISO 8601 como um número decimal (00 - 99) |
%G |
O ano baseado na semana ISO 8601 como um número decimal |
%h |
Nome abreviado do mês (equivalente a %b) |
%H |
Hora em formato de 24 horas (00 - 23) |
%I |
Hora em formato de 12 horas (01 - 12) |
%j |
Dia do ano como número decimal (001 - 366) |
%m |
Mês como número decimal (01 - 12) |
%M |
Minuto como um número decimal (00 - 59) |
%n |
Um caractere de nova linha (\n) |
%p |
Indicador A.M./P.M. da localidade para relógio de 12 horas |
%r |
O relógio de 12 horas do local |
%R |
Equivalente a %H:%M |
%S |
Segundo como um número decimal (00 - 59) |
%t |
Um caractere de tabulação horizontal (\t) |
%T |
Equivalente ao %H:%M:%Sformato de hora ISO 8601 |
%u |
Dia da semana ISO 8601 como um número decimal (1 - 7; Segunda-feira é 1) |
%U |
Número da semana do ano como um número decimal (00 - 53), em que o primeiro domingo é o primeiro dia da semana 1 |
%V |
Número da semana ISO 8601 como um número decimal (00 - 53) |
%w |
Dia da semana como um número decimal (0 - 6; Domingo é 0) |
%W |
Número da semana do ano como um número decimal (00 - 53), em que a primeira segunda-feira é o primeiro dia da semana 1 |
%x |
Representação de data para a localidade |
%X |
Representação de tempo para a localidade |
%y |
Ano sem século, como número decimal (00 - 99) |
%Y |
Ano com século, como número decimal |
%z |
O deslocamento do UTC no formato ISO 8601; sem caracteres se o fuso horário for desconhecido |
%Z |
O nome do fuso horário da localidade ou a abreviatura do fuso horário, dependendo das configurações do Registro; sem caracteres se o fuso horário for desconhecido |
%% |
Sinal de percentagem |
Como na printf função, o sinalizador pode prefixar # qualquer código de formatação. Nesse caso, o significado do código de formato é alterado da seguinte forma.
| Código de formato | Significado |
|---|---|
%#a, %#A, , %#b, , %#G%#n%#w%#u%#Z%#h%#z%#p%#X%#t%#B%#g%#% |
# flag é ignorado. |
%#c |
Representação de data e hora longa, apropriada para a localidade. Por exemplo: "Terça-feira, 14 de março de 1995, 12:41:29". |
%#x |
Representação de data longa, apropriada para a localidade. Por exemplo: "Terça-feira, 14 de março de 1995". |
%#d, %#D, , %#e, , %#I%#m%#T%#S%#U%#R%#y%#j%#W%#M%#V%#r%#F%#H%#Y |
Remova zeros ou espaços à esquerda (se houver). |
A semana ISO 8601 e o ano baseado na semana produzidos por %V, %ge %G, usa uma semana que começa na segunda-feira. A semana 1 é a semana que contém o quarto dia de janeiro, que é a primeira semana que inclui pelo menos quatro dias do ano. Se a primeira segunda-feira do ano for a 2ª, 3ª ou 4ª, os dias anteriores fazem parte da última semana do ano anterior. Para esses dias, %V é substituído por 53, e ambos %g e %G são substituídos pelos dígitos do ano anterior.
Observação
Ao usar uma das strftime funções com um tm ponteiro retornado do gmtime, os valores impressos através dos %Z especificadores e %z não serão precisos. Isso ocorre porque a tm struct, conforme especificado pelo padrão C, não contém as informações para o nome do fuso horário nem para o deslocamento. Em vez disso, as informações de fuso horário são preenchidas por meio das variáveis _timezone globais e _dstbias.
Requerimentos
| Rotina | Cabeçalho obrigatório |
|---|---|
strftime |
<time.h> |
wcsftime |
<time.h> ou <wchar.h> |
_strftime_l |
<time.h> |
_wcsftime_l |
<time.h> ou <wchar.h> |
As _strftime_l funções e _wcsftime_l são específicas da Microsoft. Para obter mais informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
Veja o exemplo para time.
Ver também
Localidade
Gestão do tempo
Manipulação de cadeias de caracteres
localeconv
setlocale, _wsetlocale
strcoll funções
strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l