想知道如何将localtime()的输出格式化为年/月/日
我能够使用终端的'date'命令轻松地完成它,但我还需要计算以前的日期,我已经想出了如何在perl中做.
foreach my $i (0..7)
{
my $date = localtime(time() - 60*60*24*$i);
print "$i day(s) ago: $date\n";
}
Run Code Online (Sandbox Code Playgroud)
打印出来:
0 day(s) ago: Tue Apr 3 12:01:13 2012
1 day(s) ago: Mon Apr 2 12:01:13 2012
2 day(s) ago: Sun Apr 1 12:01:13 2012
3 day(s) ago: Sat Mar 31 12:01:13 2012
4 day(s) ago: Fri Mar 30 12:01:13 2012
5 day(s) ago: Thu Mar 29 12:01:13 2012
6 day(s) ago: Wed Mar 28 12:01:13 2012
7 day(s) ago: Tue Mar 27 12:01:13 2012
Run Code Online (Sandbox Code Playgroud)
这是一个例子POSIX::strftime:
use POSIX ();
my @local = ( localtime )[0..5];
foreach my $i ( 0..7 ) {
my $date = POSIX::strftime( '%a %b %d %H:%M:%S %Y', @local);
print "$i day(s) ago: $date\n";
$local[3]--;
}
Run Code Online (Sandbox Code Playgroud)
如果您正在进行日期数学运算,请使用正确的模块.例如,DateTime:
use DateTime;
my $date = DateTime->now;
foreach my $i ( 0 .. 10 ) {
$date->subtract( days => 1 );
say $date->ymd( '/' );
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17806 次 |
| 最近记录: |