快速到达当地时间YYYY-mm-dd HH:MM:SS in Perl?

and*_*ier -1 perl datetime localtime

我想得到当地时间并格式化为YYYY-mm-dd HH:MM:SS(比如2009-11-29 14:28:29).,我怎样才能得到这种格式的日期YYYY-mm-dd HH:MM :SS?

我试过了

my $format = "%4u-%02u-%02u %02u:%02u:%02u";
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime;
printf "$format\n", $year+1900, $mon+1, $mday, $hour, $min, $sec;
Run Code Online (Sandbox Code Playgroud)

打印输出是我想要的,但如何设计输出到变量?

ike*_*ami 6

sprintf而不是printf.

my ($sec, $min, $hour, $mday, $mon, $year) = localtime;
my $formatted = sprintf "%4u-%02u-%02u %02u:%02u:%02u",
   $year+1900, $mon+1, $mday, $hour, $min, $sec;
Run Code Online (Sandbox Code Playgroud)

但它使用起来要简单得多strftime.

use POSIX qw( strftime );
my $formatted = strftime("%Y-%m-%d %H:%M:%S", localtime);
Run Code Online (Sandbox Code Playgroud)