如何从当前日期获取上一个日期,我有以下代码块。请帮忙。
需要这种格式:例如:07/16/2015
#!/usr/bin/perl
$current_date = `date +"%m/%d/%Y"`;
$current_date = substr($current_date,0,-1);
print $current_date, "\n";
答案 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::Piece或DateTime。
答案 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
我希望你能得到答案。