在 AIX 上将 Unix 时间戳转换为人类可读的格式

在 AIX 上将 Unix 时间戳转换为人类可读的格式

我需要将unix时间戳(自1970年以来的秒数,例如1381260225是Tue Oct 8 19:23:45 GMT 2013)转换为标准的人类可读格式。

我可以通过谷歌搜索得到一些答案,但这些对我来说不是合适的解决方案,因为我不使用 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:

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
    
  • 格林尼治标准时间/世界标准时间

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

相关内容