perl使用DateTime模块转换EPOCH时间

时间:2014-07-07 20:32:33

标签: perl

我有一个纪元时间,想把它转换成7月10日14:11:23这样的东西,

目前我使用以下内容:

my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
    my @months = ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
    my $date = sprintf("%3s %2d %02d:%02d:%02d", $months[$mon], $mday, $hour, $min, $sec);

我想知道是否可以使用DateTime模块将纪元时间转换为“7月10日14:11:23”之类的东西,如果有人可以提供示例

2 个答案:

答案 0 :(得分:5)

使用strftimeDateTime功能:

use strict;
use warnings;

use DateTime;

my $dt = DateTime->from_epoch( epoch => time );

print $dt->strftime("%b %d %H:%M:%S");

输出:

Jul 07 20:39:11

答案 1 :(得分:3)

对于这一项任务,你可以长时间使用POSIX,核心perl。

use POSIX 'strftime';

print strftime "%b %d %H:%M:%S", localtime;