Converta timestamp do Unix em formato legível por humanos no AIX

4

Eu preciso converter o carimbo de data / hora do unix (número de segundos desde 1970, por exemplo, 1381260225 é de 8 de outubro às 19:23:45 GMT de 2013) em um formato padrão legível por humanos.

Eu poderia obter algumas respostas pesquisando no Google, mas essas não eram uma solução adequada para mim, porque eu não uso o Linux, eu uso um AIX 6.1 máquina com ksh88. O AIX não possui utilitários GNU.

    
por ramp 15.10.2013 / 21:08

6 respostas

5

Se você estivesse no Linux, poderia simplesmente usar:

date -d @1381260225

Ou você pode usar o gawk:

echo "1381260225" | gawk '{print strftime("%c",$1)}'

Ou Python:

python -c "import datetime; print  datetime.datetime.fromtimestamp(1381865497)"

Ou Perl:

perl -e 'print(scalar(localtime(1381865497)), "\n";'

No entanto, nenhuma dessas soluções está disponível em uma instalação do AIX em estoque. Todas essas ferramentas (GNU coreutils, GNU awk, Perl, Python) estão disponíveis como pacotes separados como parte do Caixa de ferramentas AIX para aplicativos Linux .

    
por 15.10.2013 / 21:18
3

Você provavelmente pode voltar ao Perl:

perl -MPOSIX=strftime -e 'print strftime("%Y-%m-%d %T", localtime($ARGV[0])), "\n"' 1381260225
2013-10-08 15:23:45
    
por 15.10.2013 / 21:22
1
# echo 1381260225 | python -c 'import sys; import time; print time.ctime( float( sys.stdin.read() ) )'
Wed Oct  9 02:23:45 2013
    
por 16.10.2013 / 07:26
1

Um pouco mais perlish:

echo 1397028688|perl -l12ne 'print scalar localtime $_'
Wed Apr  9 09:31:28 2014
    
por 09.04.2014 / 09:32
0

O AIX tem o ksh93, então:

  • horário local (aqui na Grã-Bretanha):

    $ ksh93 -c 'printf "%(%Y-%m-%d %T %z)T\n" "#$1"' ksh93 1381260225
    2013-10-08 20:23:45 +0100
    
  • GMT / UTC

    $ TZ=GMT0 ksh93 -c 'printf "%(%Y-%m-%d %T %Z)T\n" "#$1"' ksh93 1381260225
    2013-10-08 19:23:45 GMT
    
por 19.09.2018 / 11:26
-3

e algo assim?

echo "'date +"%y%m%d%H%M%S"'"
    
por 19.09.2018 / 10:52