AIXでUnixタイムスタンプを人間が読める形式に変換する

AIXでUnixタイムスタンプを人間が読める形式に変換する

Unix タイムスタンプ (1970 年以降の秒数、例: 1381260225 は 2013 年 10 月 8 日火曜日 19:23:45 GMT) を人間が読める標準形式に変換する必要があります。

私はインターネット検索でいくつかの答えを得ることができますが、Linuxを使用していないので、これは私にとって適切な解決策ではありません。オペレーティングシステム6.1ksh88のマシン。AIX用のGNUユーティリティはありません。

答え1

Perlに戻ることもできます。

perl -MPOSIX=strftime -e 'print strftime("%Y-%m-%d %T", localtime($ARGV[0])), "\n"' 1381260225
2013-10-08 15:23:45

答え2

Linuxを使用している場合は、単に次のものを使用できます。

date -d @1381260225

あるいは、gawkを使用することもできます。

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

またはPython:

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

またはパール:

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

ただし、これらのソリューションのどれも既存のAIXインストールでは機能しません。これらすべてのツール(GNU coreutils、GNU awk、Perl、Python)は、次のように別々のパッケージで利用できます。Linuxアプリケーション用のAIXツールボックス

答え3

# echo 1381260225 | python -c 'import sys; import time; print time.ctime( float( sys.stdin.read() ) )'
Wed Oct  9 02:23:45 2013

答え4

AIXにはksh93があるため、次のようになります。

  • 現地時間(ここでは英国本土時間):

    $ ksh93 -c 'printf "%(%Y-%m-%d %T %z)T\n" "#$1"' ksh93 1381260225
    2013-10-08 20:23:45 +0100
    
  • グリニッジ標準時/UTC

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

関連情報