Как преобразовать формат времени в секунды в солярисе

У меня есть время формата 2013-04-29 08:17:58 и мне нужно конвертировать его в секунды.

В UNIX мы можем использовать date +%s, Есть ли способ сделать это в Solaris?

2 ответа

Использование Time::Piece, Он был частью стандартного дистрибутива Perl 5 начиная с версии 9.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

Приложив немного больше усилий, вы можете сделать это с вашей ужасно устаревшей версией 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;

Time:: Local был включен в Perl с момента первого выпуска Perl 5 (в 1994 году).

Но, пожалуйста, делайте все возможное, чтобы обновить древнюю версию Perl.

Обновление: получение нескольких отрицательных голосов по этому вопросу. Но никто не удосужился объяснить, почему.

Другие вопросы по тегам