Perl Date::Manip - wie konvertiert ein gegebenes Datum in einer anderen Zeitzone

Betrachten Sie den folgenden Codeausschnitt, der nimmt die Eingaben des Benutzers (Datum) und formatieren Sie Sie mit UnixDate von Date::Manip

#!/usr/bin/perl
use Date::Manip;

my $input = join(" ", @ARGV);
my $date = UnixDate($input, "%Y-%m-%d %T"); 
print $date;

Dies wurde getan, um Benutzern zu erlauben, geben Sie freundlich, Termine wie "gestern" oder "1 Woche".

Möchte ich nutzen, $Datum mit einer anderen Zeitzone (Sie wird verwendet, um SQL-Daten). Wie würde das gemacht werden?
Ich habe keine gefunden Konstrukt UnixDate, die erlauben würde, um eine Zeitzone, und ich auch nicht weiß, wie formatieren der Benutzer-Eingang (Verkettung der Namen der Zeitzone an, es hilft nicht).

Beispiel

Der Benutzer irgendwo in zentral-Europa (Zeitzone: MEZ) und in den "heute um 1pm". Die Ausführung des Codes oben ist wie folgt:

$ ./test.pl today at 1pm
2011-03-03 13:00:00

Dies ist das erwartete Ergebnis, da keine Zeitzone ändern wirksam sind. Was ich möchte ist, zu verwenden, $Datum mit einer anderen Zeitzone, z.B. Pacific Standard (Zeitzone: PST). In diesem Fall sollte die Ausgabe:

$ ./test.pl today at 1pm
2011-03-03 04:00:00

InformationsquelleAutor emx | 2011-03-03

Schreibe einen Kommentar