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 № 1Existem 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