Как в Perl эффективно анализировать выходные данные команды date unix с учетом часового пояса, а также конвертировать в UTC?
Я читал много похожих вопросов о стековом потоке, но, похоже, мало кто принимает во внимание разбор нескольких часовых поясов. Вместо этого они, кажется, устанавливают часовой пояс вручную и предполагают, что он останется фиксированным.
# Example Input Strings:
my @inputs = (
'Tue Oct 12 06:31:48 EDT 2010',
'Tue Oct 12 07:49:54 BST 2010',
);
Я попробовал следующее безрезультатно:
foreach my $input ( @inputs ) {
my $t = Time::Piece->strptime( $input,
'%a %b %d %T %Z %Y' );
print $t->cdate, "\n";
}
Кажется, проблема в часовом поясе (% Z). Кроме того, в Time :: Piece, похоже, отсутствует поле часового пояса, что потребовало бы от меня написания пользовательского кода для преобразования в UTC, что кажется ... неправильным.
Контекст:
Я пытаюсь проанализировать устаревшие журналы из различных источников, которые используют команду даты unix для отметок времени. В идеале я хотел бы преобразовать все временные метки в UTC.
Любая помощь будет принята с благодарностью.