Compartilhar via


ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

Converta um valor temporal em uma cadeia de caracteres e ajuste as configurações de fuso horário local. Essas funções são versões do , , , _wctime64com aprimoramentos de segurança, _ctime64_wctimeconforme descrito em Recursos de ctimesegurança na CRT.

Sintaxe

errno_t ctime_s(
   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(
   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:

  • sourceTime representar uma data anterior à meia-noite de 1º de janeiro de 1970, UTC.

  • Se você usar _ctime32_s ou _wctime32_s e sourceTime representar uma data posterior a 23:59:59, 18 de janeiro de 2038, UTC.

  • Se você usar _ctime64_s ou _wctime64_s e sourceTime representar uma data posterior a 23:59:59, 31 de dezembro de 3000, UTC.

  • Se você usar _ctime_s ou _wctime_s, essas funções serão wrappers para as funções anteriores. Consulte a seção Comentários.

numberOfElements
O tamanho do buffer.

sourceTime
Ponteiro para a hora armazenada.

Retornar valor

Zero se for bem-sucedido. Se houver uma falha devido a um parâmetro inválido, o manipulador de parâmetros inválido será chamado, conforme descrito em Validação de parâmetro. Se a execução tiver permissão 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 gerados para cada condição de erro são mostrados na tabela a seguir.

Condições de erro

buffer numberOfElements sourceTime Retorno Valor em buffer
NULL qualquer qualquer EINVAL Não modificado
Não é NULL (aponta para a memória válida) 0 qualquer EINVAL Não modificado
Não é NULL 0< tamanho < 26 qualquer EINVAL Cadeia de caracteres vazia
Não é NULL >= 26 NULO EINVAL Cadeia de caracteres vazia
Não é NULL >= 26 < 0 EINVAL Cadeia de caracteres vazia

Comentários

A ctime_s função converte um valor de tempo armazenado como uma estrutura em uma time_t cadeia de caracteres. O sourceTime valor é normalmente obtido 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 retornado contém exatamente 26 caracteres e tem o formato:

Wed Jan 2 02:03:55 1980\n\0

Um relógio de 24 horas é usado. Todos os campos têm uma largura constante. O caractere de nova 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 as variáveis globais, consulte a _tzset função.

_wctime32_s e _wctime64_s são a versão de caractere largo de _ctime32_s e _ctime64_s, retornando um ponteiro para a cadeia de caracteres largos. Caso contrário, _ctime64_s, _wctime32_s e _wctime64_s se comportarão de modo idêntico a _ctime32_s.

ctime_s é uma função embutida que é avaliada como _ctime64_s e time_t é equivalente a __time64_t. Se você precisar forçar o compilador a interpretar time_t como o time_t antigo de 32 bits, poderá definir _USE_32BIT_TIME_T. Essa macro faz com que ctime_s a avaliação seja feita para _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.

No C++, o uso dessas funções é simplificado por sobrecargas de modelo. As sobrecargas podem inferir automaticamente o tamanho do buffer, eliminando a necessidade de especificar um argumento de tamanho. Para obter mais informações, consulte Sobrecargas de modelo seguras.

As versões de biblioteca de depuração dessas funções preenchem o buffer com 0xFE. Para desabilitar 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.

Mapeamentos de rotina de texto genérico

Rotina TCHAR.H _UNICODE e _MBCS não definidos _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

Requisitos

Rotina Cabeçalho necessário
ctime_s, _ctime32_s, _ctime64_s <time.h>
_wctime_s, _wctime32_s, _wctime64_s <time.h> ou <wchar.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Bibliotecas

Todas as versões das bibliotecas em tempo de execução C.

Exemplo

// 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( &ltime );

   err = _wctime_s( buf, SIZE, &ltime );
   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

Confira também

Gerenciamento de 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