Red de conocimiento informático - Material del sitio web - Gran pregunta: ¿Cómo convertir la hora actual de la ubicación actual en una cadena en lenguaje C en Linux? ¡Por favor solucione este problema! ¡Gracias!

Gran pregunta: ¿Cómo convertir la hora actual de la ubicación actual en una cadena en lenguaje C en Linux? ¡Por favor solucione este problema! ¡Gracias!

¡Cómo está la situación! funciones relacionadas con asctime (hora y fecha en formato de cadena) hora, ctime, gmtime, hora local

Archivo de encabezado #includelt; time.hgt;

Definir función char * asctime(const struct tm * timeptr);

Descripción de la función asctime() Convierte la información en la estructura tm señalada por el parámetro timeptr en la representación de fecha y hora utilizada en el mundo real, y luego devuelve el resultado en forma de cadena. Esta función ha convertido la zona horaria a hora local en formato de cadena: "Wed Jun 30 21:49:08 1993\n"

Valor de retorno Si se vuelve a llamar a la función de fecha y hora relacionada, la cadena puede resultar dañado. Esta función se diferencia de ctime en que los parámetros pasados ​​son estructuras diferentes.

Instrucciones adicionales Devuelve una cadena que representa la fecha y hora local actuales.

Ejemplo #include lt;time.hgt;

main()

{

time_t timep;

time (amp; timep);

printf("s ", asctime(gmtime(amp;timep)));

}

Ejecutar sábado octubre 28 02:10:06 2000

ctime (hora y fecha expresadas en formato de cadena) Funciones relacionadas time.asctime, gmtime, localtime

Archivo de encabezado # includelt; time.hgt;

Definir función char *ctime(const time_t *timep);

Descripción de la función ctime() apunta a la información señalada por el parámetro timep del parámetro timep Convierte el estructura time_t a la representación de fecha y hora utilizada en el mundo real y luego devuelve el resultado como una cadena. Esta función ha convertido la zona horaria en formato de cadena "Miércoles 30 de junio 21:49:08 1993/n". La cadena puede dañarse si se vuelven a llamar las funciones de fecha y hora asociadas.

Valor de retorno Devuelve una cadena que representa la hora y fecha locales actuales.

Ejemplo #includelt; time.hgt;

main()

{

time_t timep;

time (amp; timep);

printf ("s ", ctime (amp; timep));

}

Ejecutar el sábado 28 de octubre a las 10:12. : 05 2000

gettimeofday (obtener la hora actual) funciones relacionadas time, ctime, ftime.

settimeofday

Archivo de encabezado #include lt; sys/time.hgt;

#includelt; unistd.hgt

Definir función int gettimeofday ( struct timeval * tv; , struct timezone * tz)

La función de descripción gettimeofday() devolverá la hora actual en la estructura señalada por tv y colocará la información de la zona horaria local en la estructura señalada por tz.

La definición de la estructura Timeval es la siguiente:

struct timeval{

long tv_sec; /*segundos

long tv_usec; ​/*microsegundos

};

La definición de estructura de zona horaria es la siguiente:

struct timezone{

La definición de zona horaria es el siguiente. struct timezone{

int tz_minutoswest;/*Diferencia horaria de Greenwich en minutos*/

int tz_dsttime;/*Estado del horario de verano*/

};

Las dos estructuras anteriores están definidas en /usr/include/sys/time.h. El estado representado por tz_dsttime es el siguiente

DST_NONE /*NOT USED**

DST_USA /*USA**

DST_AUST /*AUSTRALIA**

DST_WET /*EUROPA OCCIDENTAL**

DST_MET /*EUROPA CENTRAL**

DST_EET/*EUROPA ESTE**

DST_CAN / *CANADÁ **

DST_GB /*GRAN BRETAÑA**

DST_RUM /*RUMANIA**

DST_TUR /*TURQUÍA**/

DST_ AUSTALT /*Australia (después de 1986)*/

Valor de retorno El valor de retorno es 0 para éxito, -1 para error y el código de error se almacena en errno. Notas adicionales EFAULT Se ha excedido el espacio de memoria señalado por los punteros tv y tz.

Ejemplo #includelt;sys/time.hgt;

#includelt;unistd.hgt;

main(){

estructura timeval tv;

struct timezone tz;

gettimeofday (amp;tv, amp;tz);

printf("tv_sec; d\n", tv ,.tv_sec);

printf("tv_usec; ​​​​d\n", tv.tv_usec);

printf("tz_minutoswest; d\n", tz.tz_minutoswest)

printf("tz_dsttime, d\n", tz.tz_dsttime);

}

Ejecutar tv_sec: 974857339

tv_usec : 136996

tz_minutoswest: -540

tz_dsttime: 0

gmtime (obtener la hora y fecha actuales) funciones relacionadas hora, asctime, ctime, localtime

Archivo de encabezado #includelt; time.hgt;

Definir función struct tm*gmtime(const time_t*timep); gmtime () Convierte la información en la estructura time_t a la que hace referencia el parámetro timep en la representación de fecha y hora utilizada en el mundo real, y luego devuelve el resultado a través de struct tm.

struct tm se define como

struct tm

{

int tm_sec;

int tm_min;

int tm_min; p>

int tm_hora;

int tm_mday;

int tm_mon;

int tm_año;

int tm_wday;

int tm_yday;

int tm_isdst;

};

int tm_sec representa el número actual de segundos, el normal el rango es 0-59, pero se permite un máximo de 61 segundos

int tm_min representa la puntuación actual, que oscila entre 0-59

int tm_hour representa el número de horas a partir de la medianoche , entre 0 y 23

int tm_mday representa el número de días del mes actual, entre 01 y 31

int tm_mon representa el mes actual calculado a partir de enero, entre 0 -11

int tm_year representa el número calculado desde 1900 hasta el presente Número de años. año representa el número de años desde 1900

int tm_wday representa el número de días de la semana, comenzando desde el lunes, que van del 0 al 6

int tm_yday representa desde el 1 de enero de este año El número de días en el rango 0-365

int tm_isdst representa el indicador de horario de verano

Esta función devuelve una fecha horaria que no se convierte a una zona horaria, pero se Hora UTC.

La estructura de retorno del valor de retorno tm representa la hora UTC actual

Ejemplo #include lt;hgt; p> char *wday[]={"Dom", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"};

time_t timep;

struct tm *p;

tiempo(amp;timep);

p=gmtime(amp;timep);

p=gmtime (amp ; timep);

printf("ddd ", (1900 p-gt; tm_año), (1 p-gt; tm_mon), p-gt; tm_mday

printf ("sd;d;d/n",wday[p-gt;tm_wday],p-gt;tm_hour,p-gt;tm_min,p-gt;tm_sec);

}

Ejecutar 2000/10/28 Sat 8:15:38

localtime (obtener la hora y fecha actuales locales) funciones relacionadas time, asctime, ctime, gmtime

Archivo de encabezado #includelt; time.hgt;

Definición de función struct tm *localtime(const time_t * timep);

Descripción de la función localtime() timep La información en la estructura time_t a la que apunta el parámetro se convierte en la representación de fecha y hora utilizada en el mundo real, y el resultado se devuelve a la estructura tm. Consulte gmtime() para conocer la definición de estructura tm. La fecha horaria devuelta por esta función se ha convertido a la zona horaria local.

Valor de retorno Devuelve la estructura tm que representa la hora local actual.

Ejemplo #includelt;time.hgt;

main(){

char *wday[]={"Dom", "Lunes"."Martes ", "Miércoles", "Jueves", "Viernes".

"Sábado"};

time_t timep;

struct tm *p

time(amp; timep); localtime(amp;timep);/* Obtener hora local*/

printf("ddd", (1900 p-gt;tm_year), (l p-gt;tm_mon), p-gt;tm_mday

printf( "sd: d: d/n", wday[p-gt; tm_wday], p-gt; tm_hour, p-gt; tm_min, p-gt; tm_sec); /p>

}

Ejecutar 2000/10/28 Sáb 11:12:22

mktime (convierte los datos de la estructura de tiempo en segundos transcurridos) funciones relacionadas time, asctime, gmtime, localtime

Archivo de encabezado #includelt; time.hgt;

Defina la función time_t mktime(strcut tm * timeptr);

Descripción mktime() se utiliza para convertir los datos de la estructura tm señalados por el parámetro timeptr en el número de segundos desde la hora UTC desde el 1 de enero de 1970 0:0:0:0 hasta el presente.

Valor de retorno Devuelve el número de segundos transcurridos.

Ejemplo/* Use time() para obtener el tiempo (segundos), use localtime()

para convertir a struct tm y luego use mktine() para convertir struct tm a segundos brutos*/

#includelt;time.hgt;

main()

{

time_t timep;

strcut tm *p;

tiempo(amp;timep);

printf("tiempo():d \n", tiempop);

p=localtime (amp; timep);

timep = mktime(p);

printf("time()-gt; localtime()-gt; mktime(): d \n " , timep);

}

Ejecutar time(): 974943297

time()-gt; localtime()-gt; mktime( ): 974943297

settimeofday (establecer la hora actual) funciones relacionadas time, ctime, ftime, gettimeofday

Archivo de encabezado #includelt;

#includelt;unistd.hgt;

Definir función int settimeofday (const struct timeval *tv, const struct timezone *tz);

Descripción de la función settimeofday () La hora actual se establece en la información de la estructura señalada por tv, y la información de la zona horaria local se establece en la información de la estructura señalada por tz. Consulte gettimeofday() para obtener más detalles. Tenga en cuenta que solo root puede usar esta función para cambiar la hora.

El valor de retorno 0 indica éxito, -1 indica error y el código de error se almacena en errno.

Código de error EPERM settimeofday() no se llamó con permisos de root, permisos insuficientes .

EINVAL La zona horaria o algunos datos son incorrectos y no se puede configurar la hora correctamente.

funciones relacionadas con la hora (obtener la hora actual) ctime, ftime, gettimeofday

Archivo de encabezado #includelt time.hgt; >Definir función time_t time(time_t *t);

Descripción de la función Esta función devuelve el número de segundos que han transcurrido desde el 1 de enero de 1970 (la hora UTC es 0 horas, 0 minutos y 0 segundos). Si t no es un puntero nulo, la función también almacena el valor de retorno en la memoria a la que apunta el puntero t.

Valor de retorno Si la función se ejecuta correctamente, se devuelve el número de segundos; si falla, se devuelve ((time_t)-1) y el motivo del error se almacena en errno.

Ejemplo #includelt; time.hgt;

mian()

{

int segundos= time((time_t*)NULL );

printf("d\n ", segundos);

}

Ejecute 9.73E 08

¡Gracias! Las anteriores son las funciones relacionadas con el tiempo en Linux. Espero que sean útiles para los amigos que lo necesitan. De hecho, muchas personas complican muchos problemas, por lo que realmente no es difícil.