30分钟前Solaris中的时间格式

时间:2015-04-05 04:39:24

标签: solaris solaris-10

我在1小时前用Solaris格式编写了以下命令。

date +%Y-%m-%d-%H:%M:%S -M  "1 hour ago"

但我需要半小时(30分钟)以前的Linux格式。

2 个答案:

答案 0 :(得分:1)

如果您在Linux上运行,那么如果在bash中运行,这应该可行:

date --date=@$((`date +%s`-1800))

(我在Solaris 11上使用gdate而不是date测试它。我现在没有启动Linux机箱。)

答案 1 :(得分:0)

Solaris 10 date命令不支持-M标志,该标志是GNU日期扩展名。

另一种方法是使用perl

以下是一小时前的报道:

perl -e 'my ($y,$m,$d,$H,$M,$S)=(localtime(time-3600))[5,4,3,2,1,0];
    printf "%04d-%02d-%02d-%02d:%02d:%02d\n",$y+1900,$m+1,$d,$H,$M,$S;'

半小时前:

perl -e 'my ($y,$m,$d,$H,$M,$S)=(localtime(time-1800))[5,4,3,2,1,0];
    printf "%04d-%02d-%02d-%02d:%02d:%02d\n",$y+1900,$m+1,$d,$H,$M,$S;'

编辑:使用POSIX Perl模块,您也可以这样做:

perl -e 'use POSIX qw(strftime);
    print strftime("%Y-%m-%d-%H:%M:%S\n", localtime(time-1800));'