STRFTIME, wcsftime, _strftime_l, _wcsftime_l
Formate uma seqüência de tempo.
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
Seqüência de caracteres de saída.maxsize
Tamanho da strDest buffer, medido em caracteres (char ou wchart_t).format
Seqüência de caracteres de controle de formato.timeptr
tm estrutura de dados.locale
A localidade para usar.
Valor de retorno
strftimeRetorna o número de caracteres colocados em strDest e wcsftime retorna o número correspondente de caracteres extensos.
Se o número total de caracteres, incluindo o nulo de terminação, é mais de maxsize, os dois strftime e wcsftime retornar 0 e o conteúdo de strDest são indeterminados.
O número de caracteres em strDest é igual ao número de caracteres literais em format , bem como quaisquer caracteres que podem ser adicionados ao format por meio de códigos de formatação.O nulo de terminação de uma seqüência de caracteres não é contado no valor retornado.
Comentários
O strftime e wcsftime formato de funções a tmo valor temporal em timeptr acordo com a fornecido format argumento e o resultado no buffer de armazenamento strDest*.* No máximo, maxsize caracteres são colocados na seqüência de caracteres.Para obter uma descrição dos campos de timeptr estrutura, consulte asctime. wcsftimeé o equivalente de caracteres largos de strftime; seqüência -ponteiro argumento aponta para uma seqüência de caracteres largos.Essas funções se comportam exatamente caso contrário.
Observação |
---|
Nas versões antes de Visual C++ 2005, a documentação descrita o format parâmetro do wcsftime como tendo o tipo de dadosconst wchar_t *, mas a implementação real da formatfoi do tipo de dados const char *. A implementação da format tipo de dados foi atualizado para refletir a anterior e atual documentação, ou seja, const wchar_t *. |
Esta função valida seus parâmetros.Se strDest, format, outimeptr é um ponteiro nulo, ou se a tm estrutura de dados endereçados por timeptr é inválido (por exemplo, se ele contiver valores fora da faixa para a hora ou data), ou se a format seqüência contém um inválido formatação de código, o manipulador deparâmetro inválidoé invocado, conforme descrito em Validação de parâmetro. Se a execução terá permissão para continuar, a função retorna 0 e conjuntos de errno para EINVAL.
Mapeamentos de rotina de texto genérico
TCHAR.Rotina H |
_ Unicode & _ MBCS do arquivo não definido |
_ MBCS do arquivo 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 (%).Caracteres que não começam com % são copiados sem alterações para strDest*.* O LC_TIMEa categoria da localidade atual afeta a formatação de saída de strftime. (Para obter mais informações sobre LC_TIME, consulte setlocale.) As funções, sem a _l usar o sufixo atualmente definido localidade.As versões dessas funções com o _l sufixo são idênticas exceto que eles tenham a localidade como um parâmetro e usam-o em vez de ser definido no momento localidade.Para mais informações, consulte Localidade.
A formatação códigos para strftime estão listados abaixo:
%a
Nome do dia da semana abreviado%A
Nome completo do dia de semana%b
Nome abreviado do mês%B
Nome completo do mês%c
Representação de data e hora apropriada para a localidade%d
Dia do mês como número decimal (01 – 31)%H
A 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)%p
AM/PM do atual localidadedo.indicador de relógio de 12 horas%S
Segundo, como o número decimal (00 – 59)%U
Semana do ano como número decimal , com o domingo como o primeiro dia da semana (00 – 53)%w
Dia da semana como um número decimal (0 – 6; Domingo é 0)%W
Semana do ano como número decimal , com segunda-feira como o primeiro dia da semana (00 – 53)%x
Representação da data atual localidade%X
Representação da hora atual de localidade%y
Ano sem século, como o número decimal (00 – 99)%Y
Ano com século, como o número decimal%z, %Z
O tempo - nome dezona ou tempo abreviação de zona , dependendo das configurações de registro; Nenhum caractere se o horário da zona é desconhecido%%
Sinal de porcentagem
Como do printfde função, o # sinalizar pode ser qualquer código de formatação de prefixo. Nesse maiúsculas e minúsculas, o significado do código de formato é alterado da seguinte maneira.
Código de formato |
Significado |
---|---|
%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#% |
# sinalizar será ignorado. |
%#c |
Longa data e hora da representação, apropriada para a localidadedo atual.Por exemplo: "Terça-feira 14 de março de 1995, 12: 41: 29". |
%#x |
Representação de data por extenso, adequada à localidadedo atual.Por exemplo: "Terça-feira, 14 de março de 1995". |
%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#Y |
Remova os zeros à esquerda (se houver). |
Requisitos
Rotina |
Necessário cabeçalho |
---|---|
strftime |
<time.h> |
wcsftime |
<time.h> ou <wchar.h> |
_strftime_l |
<time.h> |
_wcsftime_l |
<time.h> ou <wchar.h> |
Para obter informações adicionais de compatibilidade, consulte compatibilidade na introdução.
Exemplo
Consulte o exemplo para tempo.