Muchas son las veces que encuentro fechas en formato Unix, obviamente no entiendo un demonio de qué fecha y hora me están mostrando, es ahí donde se hace necesario convertir eso que está en UnixTime hacia «normal».
Pero, primero la pregunta:
¿Qué es Unix Time?
Podemos leer a Wikipedia y veremos que el número que tengamos delante es la cantidad de segundos que han pasado desde el 1ro de enero de 1970 hasta ese momento, algo así «1437905791» en realidad significa: 2015-07-26 10:16:31
¿Dónde encuentro fechas en el formato Unix Time?
Muchas aplicaciones acostumbran a guardar las fechas o momentos en este formato en la base de datos que usen, foros, servidores de aplicaciones, etc.
¿Cómo convertir desde la terminal UnixTime a algo que pueda entender?
Simple, supongamos que tenemos la siguiente fecha: 1416483005
Para convertirlo a algo que podamos entender nosotros, basta con anteponerle: date -d @
O sea:
date -d @1416483005
Y eso nos dirá que representa el día 20 de noviembre de 2014, con hora 06:30:05
¿Existe alguna web para convertir de UnixTime?
Sí claro, busquen en Google «date to unix» y listo, verán un montón de resultados.
¿Puedo sacar la fecha de MySQL directo convertida?
Si claro, suponiendo que sea una base de datos llamada stats, una tabla llamada times, y tenga un campo llamado date que esté en formato Unix, la consulta para sacar todos los datos de ese campo convertidos ya sería:
select FROM_UNIXTIME(date) from stats.times;
O sea, tenemos una función llamada FROM_UNIXTIME() que nos sirve para esta conversión, si dentro del paréntesis ponemos el campo cuya información es de ese tipo, nos la convierte.
Fin!
Bueno no hay mucho más que agregar, enjoy!
álaaaaa no sabia que se utilizara ese formato, que ortopedico, a ver que pasa cuando el número alcance la memoria máxima de la variable. El fin del mundo chicos, todos estaban equivocados, al final sera unix quien nos diga cuando.
https://es.m.wikipedia.org/wiki/Problema_del_a%C3%B1o_2038
Que excelente publicación… !! Gracias por la Información !!!
Saludos …
El log colorizer ccze tiene una opción para convertir el formato de fecha unix.
tailf /varlog/squid3/access.log | ccze -C
Muy buen post es bastante útil concer el comando, el unix time es un dolor de cabeza cuando vez algun log y si solo ves el numero no tienes ni idea de que es la fecha en este formato.
Exacto, que joda es preguntarte cuándo rayos ocurrió algún evento en el sistema y no saber como traducir eso.
Buena idea la de visualizar la hora con el Unixtime.
he estado haciendo pruebas con time.h en c con time(0) me da los segundos desde 1970, ya se que hay herramientas que lo hacen automaticamente pero queria verlo manual
le sumo 1970 a la cantidad de años que han pasado desde entonces,obtengo los años dividiendo los segundos entre 60 para obtener minutos y de nuevo para obtener las horas luego entre 24 y obtengo los dias por ultimo 365 y obtengo los años.
long año=1970+((time(0)/60/60/24/365)); me da fecha actual
para el numero del mes tomo la fecha actual y le resto los segundos de la fecha hasta el año pasado, pero aun tengo un los segundos del año pasado.
long numdelmes=time(0)-(((time(0)/60/60/24/365)-1)606024365);
tomo numdelmes y lo divido entre 60 para obtener los minutos y de nuevo por 60 para obtener las horas le resto un año. ya tengo el numero de dias de este año ahora tomo el residuo de la division entre 7 y me dan los dias
long diasemana=((numdelmes/60/60/24)-365)%7;
repito el proceso pero ya no divido entre 7 sino entre 31 y obtengo el numero del mes
numdelmes=((numdelmes/60/60/24)-365)/31;
Un articulo estupendo, ha quedado totalmente claro, además quiero recalcar la labor de la comunidad, en los comentarios también se aclaran muchas dudas y no es fácil tener a gente así siguiente un blog. Un 10.