/ / Perl: convertendo uma data contida em uma string para um formato diferente - perl, date

Perl: convertendo uma data contida em uma string para um formato diferente - perl, date

Eu tenho uma data que eu extraí de um arquivo de log em YYYY-MM-DD HH:MM:SS formato.

Eu tenho isso em uma variável chamada $field0 juntamente com outras nove variáveis $field1 - $field9.

Usando o Perl Eu quero mudar o formato da string para DD-MM-YYYY HH:MM:SS e colocá-lo de volta $field0

Certamente deve haver uma maneira muito fácil de fazer isso?

Alguém pode ajudar por favor ou me apontar em algum lugar que tenha o exemplo?

Respostas:

2 para resposta № 1

Existem duas abordagens óbvias. O primeiro é usar o núcleo Time::Piece módulo para analisar a cadeia de data e hora e reformatá-la, e a segunda é usar uma substituição de expressão regular para corresponder aos três campos de data e invertê-los

Aqui estão as duas técnicas usadas em um único programa

use strict;
use warnings "all";
use feature "say";

use Time::Piece;

my $time0 = my $time1 = "2016-05-28 12:53:19";

$time0 = Time::Piece->strptime($time0, "%Y-%m-%d %H:%M:%S")->strftime("%d-%m-%Y %H:%M:%S");
say $time0;

$time1 =~ s/^(dddd)-(dd)-(dd)/$3-$2-$1/;
say $time1;

saída

28-05-2016 12:53:19
28-05-2016 12:53:19