ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

Convierte un valor de hora en cadena y lo ajusta según la configuración de zona horaria local. Estas funciones son versiones de , , , con_wctime64mejoras de seguridad, como se describe en Características de seguridad de CRT. _wctime_ctime64ctime

Sintaxis

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
Debe ser lo suficientemente grande como para contener 26 caracteres. Puntero al resultado de la cadena de caracteres o NULL si:

  • sourceTime representa una fecha anterior a la medianoche del 1 de enero de 1970, UTC.

  • Se usa _ctime32_s o _wctime32_s, y sourceTime representa una fecha posterior a las 23:59:59 horas del 18 de enero de 2038, UTC.

  • Se usa _ctime64_s o _wctime64_s, y sourceTime representa una fecha posterior a las 23:59:59 horas del 31 de diciembre de 3000, UTC.

  • Se usan las funciones _ctime_s o _wctime_s, que son contenedores para las funciones anteriores. Consulte la sección Comentarios.

numberOfElements
Tamaño del búfer.

sourceTime
Puntero a la hora almacenada.

Valor devuelto

Cero si es correcta. Si se produce un error debido a un parámetro no válido, se invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, se devuelve un código de error. Los códigos de error se definen en ERRNO. H; para obtener una lista de estos errores, vea errno. Los códigos de error reales generados para cada condición de error se muestran en la tabla siguiente.

Condiciones de error

buffer numberOfElements sourceTime Return Valor de buffer
NULL cualquiera cualquiera EINVAL No modificado
No NULL (apunta a la memoria válida) 0 cualquiera EINVAL No modificado
No NULL 0 < tamaño < 26 cualquiera EINVAL Cadena vacía
No NULL >= 26 NULL EINVAL Cadena vacía
No NULL >= 26 < 0 EINVAL Cadena vacía

Comentarios

La ctime_s función convierte un valor de hora almacenado como una time_t estructura en una cadena de caracteres. El sourceTime valor se obtiene normalmente de una llamada a time, que devuelve el número de segundos transcurridos desde medianoche (00:00:00), 1 de enero de 1970, hora universal coordinada (UTC). La cadena del valor devuelto contiene exactamente 26 caracteres y tiene el formato:

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

Se usa un reloj de 24 horas. Todos los campos tienen un ancho constante. El carácter de nueva línea ("\n") y el carácter nulo ("\0") ocupan las dos últimas posiciones de la cadena.

La cadena de caracteres convertidos también se ajusta en función de la configuración de zona horaria local. Para obtener información sobre cómo configurar la hora local, vea las timefunciones , _ftimey localtime . Para más información sobre cómo definir el entorno de zona horaria y las variables globales, consulte la _tzset función .

_wctime32_s y _wctime64_s son las versiones de caracteres anchos de _ctime32_s y _ctime64_s; devuelven un puntero a una cadena de caracteres anchos. De lo contrario, _ctime64_s, _wctime32_s y _wctime64_s se comportan exactamente igual que _ctime32_s.

ctime_s es una función insertada que se evalúa como _ctime64_s, y time_t es equivalente a __time64_t. Si necesita forzar el compilador para interpretar time_t como el antiguo time_tde 32 bits, puede definir _USE_32BIT_TIME_T. Esta macro hace que ctime_s se evalúe como _ctime32_s. No se recomienda, ya que la aplicación puede producir un error después del 18 de enero de 2038 y no se permite en plataformas de 64 bits.

En C++, el uso de estas funciones se simplifica mediante sobrecargas de plantilla. Las sobrecargas pueden deducir la longitud del búfer automáticamente, lo que elimina la necesidad de especificar un argumento de tamaño. Para obtener más información, consulte Sobrecargas de plantillas seguras.

Las versiones de la biblioteca de depuración de estas funciones rellenan primero el búfer con 0xFE. Para deshabilitar este comportamiento, use _CrtSetDebugFillThreshold.

De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.

Asignaciones de rutinas de texto genérico

Rutina TCHAR.H _UNICODE y _MBCS no 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

Routine Encabezado necesario
ctime_s, _ctime32_s, _ctime64_s <time.h>
_wctime_s, _wctime32_s, _wctime64_s <time.h> o <wchar.h>

Para obtener más información sobre compatibilidad, consulte Compatibilidad.

Bibliotecas

Todas las versiones de las bibliotecas en tiempo de ejecución de C.

Ejemplo

// 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

Consulte también

Administración de tiempo
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