asctime_s, _wasctime_s

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Convierte una estructura en tiempo de tm a una cadena de caracteres. Estas funciones son versiones de asctime, _wasctime con mejoras de seguridad como se describe en Características de seguridad de CRT.

errno_t asctime_s(   
   char* buffer,  
   size_t numberOfElements,  
   const struct tm *_tm   
);  
errno_t _wasctime_s(   
   wchar_t* buffer,  
   size_t numberOfElements  
   const struct tm *_tm   
);  
template <size_t size>  
errno_t asctime_s(   
   char (&buffer)[size],  
   const struct tm *_tm   
); // C++ only  
template <size_t size>  
errno_t _wasctime_s(   
   wchar_t (&buffer)[size],  
   const struct tm *_tm   
); // C++ only  

Parámetros

buffer
[out] Un puntero a un búfer para almacenar el resultado de la cadena de caracteres. Esta función utiliza un puntero a una ubicación de memoria válida con un tamaño especificado por numberOfElements.

numberOfElements
[in] El tamaño del búfer usado para almacenar el resultado.

_tm
[in] Estructura de hora o de fecha. Esta función utiliza un puntero a un objeto válido de struct``tm .

Cero si correctamente. Si hay un error, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros. Si la ejecución puede continuar, el valor devuelto es un código de error. Los códigos de error se definen en ERRNO.H. Para obtener más información, vea errno (Constantes). Los códigos de error reales devueltos para cada condición de error se muestran en la tabla siguiente.

Condiciones de error

buffernumberOfElementstmDevoluciónValor de buffer
NULLCualquieraCualquieraEINVALNo modificado
NoNULL (señala memoria válido)0CualquieraEINVALNo modificado
No NULL0< talla 26 <CualquieraEINVALCadena vacía
No NULL>= 26NULLEINVALCadena vacía
No NULL>= 26Estructura no válida del tiempo o por valores de intervalo para los componentes de tiempoEINVALCadena vacía
System_CAPS_ICON_note.jpg Nota

Las condiciones de error para wasctime_s son similares a asctime_s excepto que el límite de tamaño se mide en palabras.

La función de asctime convierte una hora almacenada como una estructura a una cadena de caracteres. El valor de _tm se obtiene normalmente de una llamada a gmtime o a localtime. Ambas funciones se pueden utilizar para completar una estructura de tm , según TIME.H.

miembro del timeptrValor
tm_hourHoras desde la medianoche (0-23)
tm_isdstPositivo si el horario de verano está vigente; 0 si el horario de verano no está vigente; negativa si el estado de horario de verano es desconocido. La biblioteca en tiempo de ejecución de C supone las reglas de los Estados Unidos para implementar el cálculo en tiempo (DST) de Guardar Daylight.
tm_mdayDía del mes (1-31)
tm_minMinutos después de la hora (0-59)
tm_monMes (0-11; Enero = 0)
tm_secSegundos después de minuto (0-59)
tm_wdayDía de la semana (0-6; Domingo = 0)
tm_ydayDía del año (0-365; 1 de enero = 0)
tm_yearAño (año actual menos 1900)

Cadena de caracteres convierte también se ajusta según la configuración de zonas de la hora local. Vea time, _time32, _time64, _ftime, _ftime32, _ftime64, y las funciones de localtime_s, _localtime32_s, _localtime64_s para obtener información sobre la configuración de la hora local y la función de _tzset para obtener información sobre la definición del entorno y las variables globales de la zona horaria.

El resultado de la cadena generado por asctime_s contiene exactamente 26 caracteres y tiene el formato Wed Jan 02 02:03:55 1980\n\0. Se utiliza un reloj de 24 horas. Todos los campos tienen un ancho constante. El carácter de nueva línea y el carácter null ocupan las dos últimas posiciones de la cadena. El valor pasado como segundo parámetro debe ser por lo menos éste grande. Si es menor, un código de error, EINVAL, se devolverá.

_wasctime_s es una versión con caracteres anchos de asctime_s. Por lo demás, _wasctime_s y asctime_s se comportan de forma idéntica.

Asignación rutinaria de Genérico- texto

Rutina TCHAR.H_UNICODE y _MBCS no definidos_MBCS definido_UNICODE definido
_tasctime_sasctime_sasctime_s_wasctime_s

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, vea Sobrecargas de plantilla seguras.

RutinaEncabezado necesario
asctime_s<time.h>
_wasctime_s<time.h o> wchar.h <>

Si el puntero de búfer no es NULL y el puntero no señala a un búfer válido, la función sobrescribirá lo que haya en la ubicación. Esto puede dar lugar a una infracción de acceso.

saturación del búfer puede producirse si el argumento de tamaño pasado es mayor que el tamaño real del búfer.

Este programa coloca la hora del sistema en aclockentero largo, la convierte en la estructura newtime y la convierte al formato de cadena para la salida, mediante la función de asctime_s .

// crt_asctime_s.c  
#include <time.h>  
#include <stdio.h>  
  
struct tm newtime;  
__time32_t aclock;  
  
int main( void )  
{  
   char buffer[32];  
   errno_t errNum;  
   _time32( &aclock );   // Get time in seconds.  
   _localtime32_s( &newtime, &aclock );   // Convert time to struct tm form.  
  
   // Print local time as a string.  
  
   errNum = asctime_s(buffer, 32, &newtime);  
   if (errNum)  
   {  
       printf("Error code: %d", (int)errNum);  
       return 1;  
   }  
   printf( "Current date and time: %s", buffer );  
   return 0;  
}  

Fecha y hora actual: Miércoles 14 de mayo de 15: 30:17 2003

Administración del tiempo
ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s
_ftime, _ftime32, _ftime64
gmtime_s, _gmtime32_s, _gmtime64_s
localtime_s, _localtime32_s, _localtime64_s
time, _time32, _time64
_tzset

Mostrar: