我想计算当前时间并添加2分钟,然后按以下格式打印输出。 HH:MM。我在网上搜索并发现有很多CPAN模块可以用来实现它。但是我想在没有cpan模块的情况下这样做。
$current_time = time();
$new_time = $current_time + (2*60); // adding two minutes
print( ' the time is ' . $ new_time ) ;
Output : the time is 1424906904
我在网上搜索并发现我们需要使用POSIX perl接口以适当的格式打印时间。但是,我想知道是否有办法在不使用任何cpan模块的情况下执行此操作。
答案 0 :(得分:1)
您可以使用localtime
:
print scalar localtime($current_time);
或者你可以通过POSIX::strftime
运行localtime
的返回值(它以Perl作为核心模块分发):
use POSIX qw(strftime);
print strftime('%Y-%m-%d %H:%M:%S', localtime $current_time);
答案 1 :(得分:0)
localtime很容易做到。小时,分钟和秒是返回的第2个,第1个和第0个值。例如:
my ($sec, $min, $hours) = localtime(time()+120); # add 120 seconds
printf "%02d:%02d:%02d\n", $hours, $min, $sec;
答案 2 :(得分:0)
Time::Piece和Time::Seconds已包含在所有Perl安装中。
#!/usr/bin/perl
use strict;
use warnings;
use 5.010;
use Time::Piece;
use Time::Seconds;
my $time = localtime;
$time += 2 * ONE_MINUTE;
say $time->strftime('%H:%M');