/ / Perl: Konverzia dátumu zadaného v reťazci na iný formát - perl, date

Perl: Konverzia dátumu v reťazci na iný formát - perl, date

Mám dátum, ktorý som získal zo súboru denníka v YYYY-MM-DD HH:MM:SS Formát.

Mám to v premennej nazvanej $field0 spolu s ďalšími deviatimi premennými $field1 - $field9.

Použiť Perl Chcem zmeniť formát reťazca na DD-MM-YYYY HH:MM:SS a vráťte ho späť $field0

Iste musí existovať naozaj jednoduchý spôsob, ako to urobiť?

Môže mi niekto pomôcť alebo mi niekde naznačiť, že som príkladom?

odpovede:

2 pre odpoveď č. 1

Existujú dva zjavné prístupy. Prvým je použiť jadro Time::Piece modul analyzovať reťazec dátumu a času a preformátovať ho a druhým je použiť náhradu regexu, aby sa zhodovali s tromi políčkami dátumu a obrátili sa

Tu sú obidve techniky používané v jednom programe

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;

výkon

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