/ / analyzovať dátumový reťazec v perl - perl, datetime, perl-module

analýza reťazca dátumu v perl - perl, datetime, perl - module

Snažím sa skontrolovať, či je premenná $test obsahuje platný formát dátumu pokúšaním saanalyzovať s dátumom :: Manip. Funguje podľa očakávania, ak je formát "YYYY / MM / DD". Ak zmením formát na "DD / MM / YYYY" (môj $ test = "20.4.2012") nefunguje správne. Pokúsil som sa konfigurovať na formát dátumu uk, ale stále to nebolo práca.

use Date::Manip qw(ParseDate );
my $test="20_4_2012";
#my $test="2012_4_20";

$test =~ s/_///g;

print $test;

$date=ParseDate($test);

if(!$date) {
print "baddate : $daten";
}

else {
print "Guddate: $daten";
}

odpovede:

1 pre odpoveď č. 1

Môžete to urobiť pomocou Time::ParseDate ktorý vám umožňuje špecifikovať UK v jeho argumenty na analyzátor funkcie.

use Time::ParseDate;

my $test="20/4/2012";

$time = parsedate($test, UK => 1);

1 pre odpoveď č. 2

Čo vyzeralo vo vašej konfigurácii? Môžem skript do práce pridať takto:

Date_Init("DateFormat=non-US");

pred ParseDate. (A tiež pridanie Date_Init do zoznamu importu v priečinku use)


1 pre odpoveď č. 3

Dúfajme, že ste už našli svoje riešenie :-)

Ale v prospech kohokoľvek, kto prechádza hľadaním niektorých nástrojov na analýzu dátumu pre Perl, môžem dôrazne odporučiť jadrový modul Time::Piece - je to mimoriadne dobré pri spracovaní toho, čo ste mysleli z akéhokoľvek starého reťazca.

Skutočnou odpoveďou na vašu konkrétnu otázku je, samozrejme, "záleží na tom, čo myslíte tým, že platné".