mktime
|
Definido en el encabezado
<time.h>
|
||
Renormaliza el tiempo de calendario local expresado como un objeto struct tm y también lo convierte a tiempo desde época como un objeto time_t . arg - > tm_wday y arg - > tm_yday se ignoran. Los valores en arg no se verifican por estar fuera de rango.
Un valor negativo de
arg
-
>
tm_isdst
hace que
mktime
intente determinar si el horario de verano estaba en efecto en el tiempo especificado.
Si la conversión a
time_t
es exitosa, el objeto
arg
se modifica. Todos los campos de
arg
se actualizan para ajustarse a sus rangos apropiados.
arg
-
>
tm_wday
y
arg
-
>
tm_yday
se recalculan utilizando la información disponible en otros campos.
Contenidos |
Parámetros
| arg | - | puntero a un tm objeto que especifica el tiempo calendario local a convertir |
Valor de retorno
El tiempo desde el epoch como un objeto time_t en caso de éxito, o - 1 si arg no puede ser representado como un objeto time_t (POSIX también requiere que EOVERFLOW sea almacenado en errno en este caso).
Notas
Si el objeto
struct
tm
fue obtenido de POSIX
strptime
o una función equivalente, el valor de
tm_isdst
es indeterminado, y necesita establecerse explícitamente antes de llamar a
mktime
.
Ejemplo
#define _POSIX_C_SOURCE 200112L // for setenv on gcc #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { setenv("TZ", "/usr/share/zoneinfo/America/New_York", 1); // POSIX-specific struct tm tm = *localtime(&(time_t){time(NULL)}); printf("Today is %s", asctime(&tm)); printf("(DST is %s)\n", tm.tm_isdst ? "in effect" : "not in effect"); tm.tm_mon -= 100; // tm_mon is now outside its normal range mktime(&tm); // tm_isdst is not set to -1; today's DST status is used printf("100 months ago was %s", asctime(&tm)); printf("(DST was %s)\n", tm.tm_isdst ? "in effect" : "not in effect"); }
Salida posible:
Today is Fri Apr 22 11:53:36 2016 (DST is in effect) 100 months ago was Sat Dec 22 10:53:36 2007 (DST was not in effect)
Referencias
- Estándar C23 (ISO/IEC 9899:2024):
-
- 7.27.2.3 La función mktime (p: TBD)
- Estándar C17 (ISO/IEC 9899:2018):
-
- 7.27.2.3 La función mktime (p: 285-286)
- Estándar C11 (ISO/IEC 9899:2011):
-
- 7.27.2.3 La función mktime (p: 390-391)
- Estándar C99 (ISO/IEC 9899:1999):
-
- 7.23.2.3 La función mktime (p: 340-341)
- Estándar C89/C90 (ISO/IEC 9899:1990):
-
- 4.12.2.3 La función mktime
Véase también
|
(C23)
(C11)
|
convierte el tiempo desde la época en tiempo calendario expresado como hora local
(función) |
|
Documentación de C++
para
mktime
|
|