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 _wctime64
mejoras de seguridad, como se describe en Características de seguridad de CRT. _wctime
_ctime64
ctime
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
, ysourceTime
representa una fecha posterior a las 23:59:59 horas del 18 de enero de 2038, UTC.Se usa
_ctime64_s
o_wctime64_s
, ysourceTime
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 del 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 time
funciones , _ftime
y 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_t
de 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 plantilla 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( <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 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