1

我有一个格式时间,2013-04-29 08:17:58我需要将其转换为秒。

在 UNIX 中,我们可以使用date +%s. 无论如何在Solaris中可以做到这一点?

4

2 回答 2

3

使用Time::Piece. 自 9.5 版以来,它一直是标准 Perl 5 发行版的一部分,不需要安装。

use strict;
use warnings;
use 5.010;

use Time::Piece;

my $t = '2013-04-29 08:17:58';

$t = Time::Piece->strptime($t, '%Y-%m-%d %H:%M:%S');

say $t->epoch;

输出

1367223478
于 2013-09-13T09:51:04.893 回答
2

稍加努力,您就可以用过时的 Perl 版本做到这一点。

#!/usr/bin/perl

use strict;
use warnings;
use Time::Local;

my $str = '2013-04-29 08:17:58';
my @dt  = split /[- :]/, $str;

$dt[0] -= 1900;
$dt[1] -= 1;

print timelocal reverse @dt;

自从 Perl 5 的第一个版本(1994 年)以来, Time::Local就已经包含在 Perl 中了。

但是尽你所能来更新你的古老版本的 Perl。

更新:对此有一些反对意见。但没有人费心解释原因。

于 2013-09-13T12:24:43.227 回答