Как преобразовать формат времени в секунды в солярисе
У меня есть время формата 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.
Обновление: получение нескольких отрицательных голосов по этому вопросу. Но никто не удосужился объяснить, почему.