我想用一种简单的方法将昨天的日期(本地时间)作为Perl脚本中的字符串.最好,我想这样做没有模块依赖,因为我们有一个简单的Perl 5.12安装.
所以,像:
my $yesterdays_date=...; # Puts for example '301011' into $yesterdays_date,
# if today is October 31st, 2011
Run Code Online (Sandbox Code Playgroud)
run*_*rig 13
Time::Piece 是核心:
use Time::Piece;
use Time::Seconds qw(ONE_DAY);
my $yesterday = localtime() - ONE_DAY();
print $yesterday->strftime('%d%m%y'), "\n";
Run Code Online (Sandbox Code Playgroud)
如果您担心夏令时,可以将当前时间标准化到中午附近:
use Time::Piece;
use Time::Seconds qw(ONE_DAY ONE_HOUR);
my $today = localtime;
my $yesterday = $today + ONE_HOUR * ( 12 - $today->hour ) - ONE_DAY;
print $yesterday->strftime("%d%m%y"), "\n";
Run Code Online (Sandbox Code Playgroud)
如果你可以使用依赖项,那么使用DateTime:
use DateTime;
print DateTime->now->subtract(days => 1)->strftime('%d%m%y'), "\n";
Run Code Online (Sandbox Code Playgroud)
Oes*_*sor 13
如果您愿意使用依赖项,DateTime通常会执行您需要的任何操作.
use strict;
use warnings;
use 5.012;
use DateTime;
say DateTime->now->subtract(days => 1)->strftime('%d%m%y');
Run Code Online (Sandbox Code Playgroud)