Compartilhar via


ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

Converter um valor do tempo como uma cadeia de caracteres e ajuste-o para configurações de fuso horário local. Essas são versões de ctime, _ctime64, _wctime, _wctime64 com aprimoramentos de segurança conforme descrito em Recursos de segurança no CRT.

errno_t ctime_s( 
   char* buffer,
   size_t numberOfElements,
   const time_t *time 
);
errno_t _ctime32_s( 
   char* buffer,
   size_t numberOfElements,
   const __time32_t *time 
);
errno_t _ctime64_s( 
   char* buffer,
   size_t numberOfElements,
   const __time64_t *time )
;
errno_t _wctime_s( 
   wchar_t* buffer,
   size_t numberOfElements,
   const time_t *time 
);
errno_t _wctime32_s( 
   wchar_t* buffer,
   size_t numberOfElements,
   const __time32_t *time 
);
errno_t _wctime64_s( 
   wchar_t* buffer,
   size_t numberOfElements,
   const __time64_t *time 
);
template <size_t size>
errno_t _ctime32_s( 
   char (&buffer)[size],
   const __time32_t *time 
); // C++ only
template <size_t size>
errno_t _ctime64_s( 
   char (&buffer)[size],
   const __time64_t *time
); // C++ only
template <size_t size>
errno_t _wctime32_s( 
   wchar_t (&buffer)[size],
   const __time32_t *time 
); // C++ only
template <size_t size>
errno_t _wctime64_s( 
   wchar_t (&buffer)[size],
   const __time64_t *time 
); // C++ only

Parâmetros

  • [out] buffer
    Deve ser grande o suficiente para reter 26 caracteres. Um ponteiro para o resultado da cadeia de caracteres, ou NULLse:

    • time representa uma data antes da meia-noite, o 1º de janeiro de 1970, UTC.

    • Se você usar _ctime32_s ou _wctime32_s e time representarem uma data após 03:14: 7 de janeiro de 19, 2038.

    • Se você usar _ctime64_s ou _wctime64_s e time representarem uma data após 23:59: o 31 de dezembro, 59, 3000, UTC.

    • Se você usar _ctime_s ou _wctime_s, essas funções são wrappers das funções anteriores. Consulte a seção Observações.

  • [entrada] numberOfElements
    O tamanho do buffer.

  • [in]imet
    Ponteiro para o momento armazenados.

Valor de retorno

Nulo se com êxito. Se houver uma falha devido a um parâmetro inválido, o manipulador inválido do parâmetro será chamado, conforme descrito em Validação do parâmetro. Se a execução for permitida continuar, um código de erro será retornado. Os códigos de erro são definidos em ERRNO.H; para 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

time

Return

Valor em buffer

NULL

any

any

EINVAL

Não modificados

Não NULL (pontos para a memória válido)

0

any

EINVAL

Não modificados

Não NULL

0< tamanhos < 26

any

EINVAL

Cadeia de caracteres vazia

Não NULL

>= 26

NULL

EINVAL

Cadeia de caracteres vazia

Não NULL

>= 26

< 0

EINVAL

Cadeia de caracteres vazia

Comentários

A função de ctime_s converte um valor de hora armazenado como uma estrutura de time_t em uma cadeia de caracteres. O valor de time geralmente é obtido de uma chamada para hora, o que retorna o número de segundos decorridos desde meia-noite (00:00: 00), o 1º de janeiro de 1970, coordinator hora universal (UTC). A cadeia de caracteres do valor de retorno contém exatamente 26 caracteres e tem o formato:

Wed Jan 02 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 posições as mais recentes de cadeia de caracteres.

A cadeia de caracteres convertida também é ajustada de acordo com as configurações de fuso horário local. Consulte time, _ftime, e as funções de localtime32_s para obter informações sobre como configurar a hora local e a função de _tzset para obter mais informações sobre como configurar o ambiente de fuso horário e variáveis globais.

_wctime32_s e _wctime64_s é a versão de ampla caractere de _ctime32_s e _ctime64_s; retornando um ponteiro para a cadeia de caracteres de ampla caractere. Caso contrário, _ctime64_s, _wctime32_s, e _wctime64_s se comportam idêntica a _ctime32_s.

ctime_s é uma função embutida que é avaliada para _ctime64_s e time_t é equivalente a __time64_t. Se você precisar forçar o compilador para interpretar time_t como time_tde 32 bits antigo, você pode definir _USE_32BIT_TIME_T. Isso fará com que ctime_s é avaliada para _ctime32_s. Isso não é recomendado porque seu aplicativo pode falhar depois do 18 de janeiro de 2038, e não é permitido em plataformas de 64 bits.

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

Mapeamentos da rotina de texto genérico

Rotina TCHAR.H

_UNICODE & _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

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 informações adicionais de compatibilidade, consulte Compatibilidade na Introdução.

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 );
}

Saída de Exemplo

The time is Fri Apr 25 13:03:39 2003

Equivalência do .NET Framework

Consulte também

Referência

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