在编写Perl脚本时,我经常发现需要获取以字符串格式表示的当前时间YYYY-mm-dd HH:MM:SS
(例如2009-11-29 14:28:29
)。
在执行此操作时,我发现自己走的路很繁琐:
man perlfunc
/localtime
搜索本地时间-重复五次(/
+\n
)以到达手册页的相关部分- 将字符串
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
从手册页复制到我的脚本中。 - 试试看
my $now = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $year, $mon, $mday, $hour, $min, $sec);
- 记住第一点:必须将$ year加1900才能获得当前年份。
- 试试看
my $now = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $year+1900, $mon, $mday, $hour, $min, $sec);
- 请记住,第2点:必须将$ mon加1才能获得当前月份。
- 试试看
my $now = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $year+1900, $mon+1, $mday, $hour, $min, $sec);
- 好像还可以 做完了!
尽管上面概述的过程有效,但远非最佳。我敢肯定有一种更聪明的方法,所以我的问题很简单:
YYYY-mm-dd HH:MM:SS
在Perl中获取当前日期/时间的最简单方法是什么?
“简单”既包括“易于编写”又包括“易于记忆”。