Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Converta um valor de hora em uma cadeia de caracteres e ajuste as configurações de fuso horário local. Essas funções são versões de ctime, _ctime64, , com aprimoramentos de segurança, _wctime_wctime64 conforme descrito em Recursos de segurança no CRT.
Sintaxe
errno_t ctime_s( // See note in remarks section about linkage
char* buffer,
size_t numberOfElements,
const time_t *sourceTime
);
errno_t _ctime32_s(
char* buffer,
size_t numberOfElements,
const __time32_t *sourceTime
);
errno_t _ctime64_s(
char* buffer,
size_t numberOfElements,
const __time64_t *sourceTime
);
errno_t _wctime_s( // See note in remarks section about linkage
wchar_t* buffer,
size_t numberOfElements,
const time_t *sourceTime
);
errno_t _wctime32_s(
wchar_t* buffer,
size_t numberOfElements,
const __time32_t *sourceTime
);
errno_t _wctime64_s(
wchar_t* buffer,
size_t numberOfElements,
const __time64_t *sourceTime
);
template <size_t size>
errno_t _ctime32_s(
char (&buffer)[size],
const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _ctime64_s(
char (&buffer)[size],
const __time64_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime32_s(
wchar_t (&buffer)[size],
const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime64_s(
wchar_t (&buffer)[size],
const __time64_t *sourceTime
); // C++ only
Parâmetros
buffer
Deve ser grande o suficiente para conter 26 caracteres. Um ponteiro para o resultado da cadeia de caracteres ou NULL se:
sourceTimerepresenta uma data antes da meia-noite, 1 de janeiro de 1970, UTC.Se você usar
_ctime32_sou_wctime32_sesourceTimerepresenta uma data após 23:59:59 18 de janeiro de 2038, UTC.Se você usar
_ctime64_sou_wctime64_sesourceTimerepresenta uma data após 23:59:59, 31 de dezembro de 3000, UTC.Se você usar
_ctime_sou_wctime_s, essas funções são wrappers para as funções anteriores. Consulte a secção Observações.
numberOfElements
O tamanho do buffer.
sourceTime
Ponteiro para o tempo armazenado.
Valor de retorno
Zero se for bem-sucedido. Se houver uma falha devido a um parâmetro 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, um código de erro será retornado. Os códigos de erro são definidos em ERRNO. H; Para obter uma lista desses erros, consulte errno. Os códigos de erro reais lançados para cada condição de erro são mostrados na tabela a seguir.
Condições de erro
buffer |
numberOfElements |
sourceTime |
Devolução | Valor em buffer |
|---|---|---|---|---|
NULL |
any | any | EINVAL |
Não modificado |
Não NULL (aponta para a memória válida) |
0 | any | EINVAL |
Não modificado |
Não NULL |
< 0 tamanho < 26 | any | EINVAL |
Cadeia vazia |
Não NULL |
>= 26 | NULO | EINVAL |
Cadeia vazia |
Não NULL |
>= 26 | < 0 | EINVAL |
Cadeia vazia |
Observações
A ctime_s função converte um valor de tempo armazenado como uma time_t estrutura em uma cadeia de caracteres. O sourceTime valor é normalmente obtido a partir de uma chamada para time, que retorna o número de segundos decorridos desde a meia-noite (00:00:00), 1 de janeiro de 1970, tempo universal coordenado (UTC). A cadeia de caracteres do valor de retorno contém exatamente 26 caracteres e tem o formato:
Wed Jan 2 02:03:55 1980\n\0
É utilizado um relógio de 24 horas. Todos os campos têm uma largura constante. O novo caractere de linha ('\n') e o caractere nulo ('\0') ocupam as duas últimas posições da cadeia de caracteres.
A cadeia de caracteres convertida também é ajustada de acordo com as configurações de fuso horário local. Para obter informações sobre como configurar a hora local, consulte o time, _ftimee localtime funções. Para obter detalhes sobre como definir o ambiente de fuso horário e variáveis globais, consulte a _tzset função.
_wctime32_se _wctime64_s são a versão de caracteres largos de e _ctime64_s; retornando um ponteiro para a cadeia de _ctime32_s caracteres largos. Caso contrário, _ctime64_s, _wctime32_s, e _wctime64_s comportar-se de forma idêntica a _ctime32_s.
ctime_s é uma função embutida que avalia e é equivalente a _ctime64_stime_t__time64_t. Se você precisar forçar o compilador a interpretar time_t como o antigo 32-bit time_t, você pode definir _USE_32BIT_TIME_T. Esta macro faz com que ctime_s se avalie a _ctime32_s. Não recomendamos isso, porque seu aplicativo pode falhar após 18 de janeiro de 2038 e não é permitido em plataformas de 64 bits.
Em C++, o uso dessas funções é simplificado por sobrecargas de modelo; As sobrecargas podem inferir o comprimento do buffer automaticamente, eliminando a necessidade de especificar um argumento de tamanho. Para obter mais informações, consulte Sobrecargas de modelo seguro.
As versões da biblioteca de depuração dessas funções primeiro preenchem o buffer com 0xFE. Para desativar esse comportamento, use _CrtSetDebugFillThreshold.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.
Observação
Quando você usa o Windows SDK versão 10.0.26100.6901 e Visual Studio 2026 ou posterior juntos, ctime_s e _wctime_s não são mais static inline (ligação interna). Em vez disso, eles são inline (ligação externa).
Para retornar ao comportamento anterior, #define _STATIC_INLINE_UCRT_FUNCTIONS=1 antes de incluir quaisquer cabeçalhos CRT. Por padrão, _STATIC_INLINE_UCRT_FUNCTIONS é definido como 0.
Essa alteração aumenta a conformidade do UCRT com o padrão C++ e melhora a compatibilidade com módulos C++.
Mapeamentos de rotina de texto genérico
| TCHAR. Rotina H |
_UNICODE e _MBCS não definido |
_MBCS definido |
_UNICODE definido |
|---|---|---|---|
_tctime_s |
ctime_s |
ctime_s |
_wctime_s |
_tctime32_s |
_ctime32_s |
_ctime32_s |
_wctime32_s |
_tctime64_s |
_ctime64_s |
_ctime64_s |
_wctime64_s |
Requerimentos
| Rotina | Cabeçalho obrigatório |
|---|---|
ctime_s, _ctime32_s, _ctime64_s |
<tempo.h> |
_wctime_s, _wctime32_s, _wctime64_s |
<time.h> ou <wchar.h> |
Para obter mais informações sobre compatibilidade, consulte Compatibilidade.
Libraries
Todas as versões das bibliotecas de tempo de execução C.
Example
// crt_wctime_s.c
// This program gets the current
// time in time_t form and then uses _wctime_s to
// display the time in string form.
#include <time.h>
#include <stdio.h>
#define SIZE 26
int main( void )
{
time_t ltime;
wchar_t buf[SIZE];
errno_t err;
time( <ime );
err = _wctime_s( buf, SIZE, <ime );
if (err != 0)
{
printf("Invalid Arguments for _wctime_s. Error Code: %d\n", err);
}
wprintf_s( L"The time is %s\n", buf );
}
The time is Fri Apr 25 13:03:39 2003
Consulte também
Gestão do tempo
asctime_s, _wasctime_s
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_ftime, _ftime32, _ftime64
gmtime_s, _gmtime32_s, _gmtime64_s
localtime_s, _localtime32_s, _localtime64_s
time, _time32, _time64