localtime
, , _localtime32
, _localtime64
Convierte un valor de hora y lo corrige para la zona horaria local. Existen versiones más seguras de estas funciones disponibles; consulte localtime_s
, _localtime32_s
, _localtime64_s
.
Sintaxis
struct tm *localtime( const time_t *sourceTime );
struct tm *_localtime32( const __time32_t *sourceTime );
struct tm *_localtime64( const __time64_t *sourceTime );
Parámetros
sourceTime
Puntero a la hora almacenada.
Valor devuelto
Devuelve un puntero al resultado de la estructura o NULL
si la fecha que se pasa a la función es:
Antes de la medianoche del 1 de enero de 1970.
Después de las 03:14:07 del 19 de enero de 2038, hora UTC (mediante
_time32
ytime32_t
).Después de las 23:59:59 del 31 de diciembre de 3000, UTC (mediante
_time64
y__time64_t
).
_localtime64
, que usa la estructura __time64_t
, permite expresar fechas hasta las 23:59:59 del 31 de diciembre de 3000, hora universal coordinada (UTC), mientras que _localtime32
representa fechas hasta las 23:59:59 del 18 de enero de 2038, hora UTC.
localtime
es una función insertada que se evalúa como _localtime64
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
. _USE_32BIT_TIME_T
hace que localtime
se evalúe como _localtime32
. No se recomienda _USE_32BIT_TIME_T
, 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.
Los campos del tipo de estructura tm
almacenan los valores siguientes, cada uno de los cuales es un valor int
:
Campo | Descripción |
---|---|
tm_sec |
Segundos después del minuto (0 - 59). |
tm_min |
Minutos después de la hora (0 - 59). |
tm_hour |
Horas desde la medianoche (0 - 23). |
tm_mday |
Día del mes (1 - 31). |
tm_mon |
Mes (0 - 11; enero = 0). |
tm_year |
Año (año actual menos 1900). |
tm_wday |
Día de la semana (0 - 6; domingo = 0). |
tm_yday |
Día del año (0 - 365; 1 de enero = 0). |
tm_isdst |
Valor positivo si el horario de verano está en vigor; 0 si el horario de verano no está en vigor; valor negativo si se desconoce el estado del horario de verano. |
Si se establece la variable de entorno TZ
, la biblioteca en tiempo de ejecución de C usa las reglas correspondientes a los Estados Unidos para implementar el cálculo del horario de verano (DST).
Comentarios
La función localtime
convierte una hora almacenada como valor time_t
y almacena el resultado en una estructura de tipo tm
. El valor long
sourceTime
representa los segundos transcurridos desde la medianoche (00:00:00) del 1 de enero de 1970, hora UTC. Este valor se obtiene a menudo de la time
función .
Las versiones de 32 y 64 bits de gmtime
, mktime
, mkgmtime
y localtime
usan una única estructura tm
por subproceso para llevar a cabo la conversión. Cada llamada a una de estas rutinas destruye el resultado de la llamada anterior.
localtime
corrige la zona horaria local si el usuario establece primero la variable de entorno global TZ
. Si se establece TZ
, también se establecen automáticamente otras tres variables de entorno (_timezone
, _daylight
y _tzname
). Si no se establece la TZ
variable, localtime
intenta usar la información de zona horaria especificada en la aplicación Fecha y hora en Panel de control. Si no se puede obtener esta información, PST8PDT, que significa la zona horaria del Pacífico, se usa de forma predeterminada. Consulte _tzset
para ver una descripción de estas variables. TZ
es una extensión de Microsoft y no forma parte de la definición del estándar ANSI de localtime
.
Nota:
El entorno de destino debería intentar determinar si el horario de verano está vigente.
Estas funciones validan sus parámetros. Si sourceTime
es un puntero nulo o si el sourceTime
valor es negativo, estas funciones invocan un controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, las funciones devuelven NULL
y establecen errno
en EINVAL
.
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.
Requisitos
Routine | Encabezado C necesario | Encabezado C++ necesario |
---|---|---|
localtime , , _localtime32 , _localtime64 |
<time.h> |
<ctime> o <time.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// crt_localtime.cpp
// compile with: /W3
// This program uses _time64 to get the current time
// and then uses localtime64() to convert this time to a structure
// representing the local time. The program converts the result
// from a 24-hour clock to a 12-hour clock and determines the
// proper extension (AM or PM).
#include <stdio.h>
#include <string.h>
#include <time.h>
int main( void )
{
struct tm *newtime;
char am_pm[] = "AM";
__time64_t long_time;
_time64( &long_time ); // Get time as 64-bit integer.
// Convert to local time.
newtime = _localtime64( &long_time ); // C4996
// Note: _localtime64 deprecated; consider _localetime64_s
if( newtime->tm_hour > 12 ) // Set up extension.
strcpy_s( am_pm, sizeof(am_pm), "PM" );
if( newtime->tm_hour > 12 ) // Convert from 24-hour
newtime->tm_hour -= 12; // to 12-hour clock.
if( newtime->tm_hour == 0 ) // Set hour to 12 if midnight.
newtime->tm_hour = 12;
char buff[30];
asctime_s( buff, sizeof(buff), newtime );
printf( "%.19s %s\n", buff, am_pm );
}
Tue Feb 12 10:05:58 AM
Consulte también
Administración de tiempo
asctime
, _wasctime
ctime
, _ctime32
, _ctime64
, _wctime
, , _wctime32
, _wctime64
_ftime
, , _ftime32
, _ftime64
gmtime
, , _gmtime32
, _gmtime64
localtime_s
, , _localtime32_s
, _localtime64_s
time
, , _time32
, _time64
_tzset