/ / Perl: Konwersja daty przechowywanej w łańcuchu na inny format - perl, data

Perl: Konwertowanie daty trzymanej w ciągu na inny format - perl, date

Mam datę, którą wyodrębniłem z pliku dziennika w YYYY-MM-DD HH:MM:SS format.

Mam go w zmiennej o nazwie $field0 wraz z kolejnymi dziewięcioma zmiennymi $field1 - $field9.

Używając Perla chcę zmienić format łańcucha na DD-MM-YYYY HH:MM:SS i włóż z powrotem $field0

Z pewnością musi być naprawdę prosty sposób, aby to zrobić?

Czy ktoś może mi pomóc lub wskazać mi miejsce, które ma przykład?

Odpowiedzi:

2 dla odpowiedzi № 1

Istnieją dwa oczywiste podejścia. Pierwszym jest użycie rdzenia Time::Piece moduł do analizowania łańcucha daty i czasu i ponownego formatowania go, a drugi polega na użyciu podstawienia wyrażeń regularnych w celu dopasowania trzech pól daty i odwrócenia

Oto obie techniki stosowane w jednym programie

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;

wydajność

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