如何在Perl脚本中获取以前的日期

时间:2015-07-16 07:16:11

标签: perl

如何从当前日期获取上一个日期,我有以下代码块。请帮忙。

需要这种格式:例如:07/16/2015

#!/usr/bin/perl

$current_date = `date +"%m/%d/%Y"`;
$current_date = substr($current_date,0,-1);

print $current_date, "\n";

5 个答案:

答案 0 :(得分:2)

您可以使用DateTime模块:

ListFragment

答案 1 :(得分:2)

使用perl核心模块,

use Time::Piece;
use Time::Seconds;

my $t = localtime() - ONE_DAY;
print $t->mdy("/"), "\n";

答案 2 :(得分:2)

使用localtime很容易。

这给出了24小时前的日期(和时间)。这可能不是前一天切换到夏令时或从夏令时开始的。

use constant ONE_DAY => 24 * 60 * 60;
say scalar localtime time - ONE_DAY;

要控制格式,请使用POSIX::strftime

use POSIX 'strftime';
use constant ONE_DAY => 24 * 60 * 60;
my @then = localtime time - ONE_DAY;
say strftime '%Y-%m-%d', @then;

对于更复杂的日期和时间处理,我来Time::PieceDateTime

答案 3 :(得分:1)

无需使用系统调用。 Perl内置了它。一种方法是使用DateTime

use strict;
use warnings;
use feature 'say';
use DateTime;

my $yesterday = DateTime->today->subtract( days => 1 )->mdy('/');

say $yesterday;

答案 4 :(得分:0)

今天的日期是2015年7月16日

use strict;
use DateTime;
my $date = DateTime->now->subtract( days => 1)->mdy('/');

输出日期

07/15/2015

我希望你能得到答案。