Perl 的时间模块
在 Perl 中,我们可以使用内置的 Time::Piece 模块来表示和处理时间。这个模块已经从 Perl 5.10.0 开始加入标准库,并且成为了 core module,因此无需额外安装即可使用。
获取当前时间
如果要获取当前时间,我们可以使用 localtime() 函数和 Time::Piece 模块中的 localtime 方法。
use Time::Piece;
# 使用 localtime() 函数获取当前时间
my $current_time = localtime();
# 使用 Time::Piece 模块中的 localtime() 方法获取当前时间
my $current_time = Time::Piece->localtime();
这两种方式都可以得到类似于以下格式的当前时间:
Mon Aug 16 18:08:21 2021
需要注意的是,上述代码中的 Time::Piece->localtime()
方法返回一个 Time::Piece 对象,而不是一个简单的字符串。
格式化时间
如果需要以特定格式表示时间,我们可以使用 strftime() 方法,这个方法接受一个格式化字符串作为参数。
例如,要以 年-月-日 小时:分钟:秒 的格式表示当前时间,可以使用以下代码:
my $current_time = Time::Piece->localtime();
my $formatted_time = $current_time->strftime('%Y-%m-%d %H:%M:%S');
print $formatted_time; # 输出:2021-08-16 18:08:21
这里的 %Y
、%m
、%d
、%H
、%M
、%S
等都是时间格式化字符串中的占位符,分别代表年、月、日、小时、分钟、秒。更多占位符的用法可以参考 Perl 文档中的介绍。
获取时间戳
时间戳是指某个时间点距离 UNIX 时间(即格林威治标准时间)的秒数。在 Perl 中,我们可以使用 Time::Piece 模块中的 epoch() 方法来获取时间戳。
my $current_time = Time::Piece->localtime();
my $timestamp = $current_time->epoch();
print $timestamp; # 输出:1629131281
这里的 $timestamp
就是当前时间的时间戳。
示例代码
下面是一个完整的示例代码:
use Time::Piece;
# 使用 localtime() 函数获取当前时间
my $current_time = localtime();
# 使用 Time::Piece 模块中的 localtime() 方法获取当前时间
my $current_time = Time::Piece->localtime();
# 格式化当前时间
my $formatted_time = $current_time->strftime('%Y-%m-%d %H:%M:%S');
print "当前时间是:$formatted_time\n";
# 获取当前时间的时间戳
my $timestamp = $current_time->epoch();
print "当前时间戳是:$timestamp\n";
以上代码输出结果类似于:
当前时间是:2021-08-16 18:08:21
当前时间戳是:1629131281