Muitas são as vezes que encontro datas no formato Unix, obviamente não entendo um demônio de que data e hora estão me mostrando, é aí que é necessário converter o que está em UnixTime para "normal".
Mas, primeiro a pergunta:
O que é hora do Unix?
Podemos ler para Wikipedia e veremos que o número à nossa frente é o número de segundos que se passaram desde 1º de janeiro de 1970 até aquele momento, algo como "1437905791" na verdade significa: 2015-07-26 10:16:31
Onde encontro datas no formato de hora Unix?
Muitos aplicativos tendem a salvar datas ou momentos neste formato no banco de dados que usam, fóruns, servidores de aplicativos, etc.
Como converter de um terminal UnixTime para algo que você possa entender?
Simples, suponha que temos a seguinte data: 1416483005
Para convertê-lo em algo que possamos entender, basta colocar: data -d @
Isso é:
date -d @1416483005
E isso nos dirá o que representa em 20 de novembro de 2014, às 06:30:05
Existe um site para converter do UnixTime?
Sim, claro, Google «data para unix»E voila, eles verão muito RESULTADOS.
Posso obter a data convertida direta do MySQL?
Sim, claro, supondo que seja um banco de dados chamado stats, uma mesa chamada vezes, e ter um campo denominado data que está no formato Unix, a consulta para obter todos os dados desse campo convertido já seria:
select FROM_UNIXTIME(date) from stats.times;
Ou seja, temos uma função chamada FROM_UNIXTIME () que nos auxilia nessa conversão, se dentro dos parênteses colocarmos o campo cuja informação é desse tipo, ele converte.
O fim!
Bem, não há muito mais a acrescentar, divirta-se!
álaaaaa não sabia que seria usado esse formato, que é ortopédico, vamos ver o que acontece quando o número atinge o máximo de memória da variável. Fim do mundo galera, todo mundo estava errado, no final vai ser o unix quem vai nos dizer quando.
https://es.m.wikipedia.org/wiki/Problema_del_a%C3%B1o_2038
Que publicação excelente… !! Obrigado pela informação !!!
Felicidades …
O colorizador ccze log tem uma opção para converter o formato de data Unix.
tailf /varlog/squid3/access.log | ccze -C
Postagem muito boa, é bastante útil conhecer o comando, a hora unix é uma dor de cabeça quando você vê um log e se você vê apenas o número você não tem ideia de qual é a data neste formato.
Exatamente, o que diabos você está perguntando quando diabos um evento ocorreu no sistema e não saber como traduzir isso.
Boa ideia para exibir a hora com Unixtime.
Tenho feito testes com time.h em c com time (0) me dá os segundos desde 1970, sei que existem ferramentas que fazem isso automaticamente, mas queria ver manualmente
Acrescento 1970 ao número de anos que se passaram desde então, obtenho os anos dividindo os segundos por 60 para obter os minutos e novamente para obter as horas então entre 24 e obtenho os dias dos últimos 365 e obtenho os anos.
ano longo = 1970 + ((tempo (0) / 60/60/24/365)); me dá a data atual
para o número do mês, pego a data atual e subtraio os segundos da data até o ano passado, mas ainda tenho os segundos do ano passado.
long numdelmes=time(0)-(((time(0)/60/60/24/365)-1)606024365);
Eu pego os números e divido por 60 para obter os minutos e novamente por 60 para obter as horas, o resto do ano. Já tenho o número de dias este ano agora pego o resto da divisão entre 7 e eles me dão os dias
long diasemana=((numdelmes/60/60/24)-365)%7;
Repito o processo, mas não divido mais por 7, mas por 31 e recebo o número do mês
numdelmes=((numdelmes/60/60/24)-365)/31;
Um ótimo artigo, ficou totalmente claro, também quero enfatizar o trabalho da comunidade, nos comentários muitas dúvidas também são esclarecidas e não é fácil ter pessoas assim acompanhando um blog. A 10.