/ / parsing Datumszeichenfolge in Perl - Perl, Datetime, Perl-Modul

Parsing Datum Zeichenfolge in Perl - Perl, Datetime, Perl-Modul

Ich versuche zu überprüfen, ob eine Variable $test enthält ein gültiges Datumsformat, indem versucht wirdparse es mit Date :: Manip. Es funktioniert wie erwartet, wenn das Format "YYYY / MM / DD" ist. Wenn ich das Format auf "DD / MM / YYYY" (mein $ test = "20/4/2012") ändere, funktioniert es nicht richtig. Ich habe eine Konfigurationsfunktion für die Einstellung auf britisches Datumsformat versucht, aber immer noch nicht Arbeit.

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";
}

Antworten:

1 für die Antwort № 1

Sie können dies mit dem. Tun Time::ParseDate was Sie angeben können UK in ihr Argumente an die Parser-Funktion.

use Time::ParseDate;

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

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

1 für die Antwort № 2

Wie sah der Aufruf Ihrer Konfigurationsfunktion aus? Ich kann Ihr Skript zum Laufen bringen, indem ich Folgendes hinzufüge:

Date_Init("DateFormat=non-US");

vor dem ParseDate. (Und auch hinzufügen Date_Init zur Importliste in der use)


1 für die Antwort № 3

Hoffentlich hast du schon deine Lösung gefunden :-)

Aber für alle, die auf der Suche nach Perl-Tools für die Datumsanalyse sind, kann ich das Kernmodul wärmstens empfehlen Time::Piece - Es ist wahnsinnig gut, herauszufinden, was du von einer alten Datumszeichenkette meinst.

Die wirkliche Antwort auf Ihre spezifische Frage ist natürlich "es kommt darauf an, was Sie mit" meinen ".