我在1小时前用Solaris格式编写了以下命令。
date +%Y-%m-%d-%H:%M:%S -M "1 hour ago"
但我需要半小时(30分钟)以前的Linux格式。
答案 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));'