Localtime Wie wird die aktuelle Zeit in Perl angezeigt?

Perl verfügt über eine praktische integrierte Funktion zum Ermitteln des aktuellen Datums und der Uhrzeit in Ihren Skripten. Wenn wir jedoch über das Ermitteln der Uhrzeit sprechen, sprechen wir über die Uhrzeit, die derzeit auf dem Computer eingestellt ist, auf dem das Skript ausgeführt wird. Wenn Sie beispielsweise Ihr Perl-Skript auf Ihrem lokalen Computer ausführen, gibt localtime die aktuelle Zeit zurück, die Sie eingestellt haben, und vermutlich auf Ihre aktuelle Zeitzone.

Wenn Sie dasselbe Skript auf einem Webserver ausführen, stellen Sie möglicherweise fest, dass die Ortszeit auf Ihrem Desktop-System von der Ortszeit abweicht. Der Server befindet sich möglicherweise in einer anderen Zeitzone oder ist falsch eingestellt. Jeder Rechner hat möglicherweise eine völlig andere Vorstellung von der Ortszeit und es kann einige Anpassungen erforderlich machen, entweder innerhalb des Skripts oder auf dem Server selbst, um die erwarteten Ergebnisse zu erzielen.

Die Funktion localtime gibt eine Liste mit Daten zur aktuellen Uhrzeit zurück, von denen einige angepasst werden müssen. Führen Sie das folgende Programm aus, und jedes Element in der Liste wird in der Zeile gedruckt und durch Leerzeichen getrennt.

#! / usr / local / bin / perl
@timeData = localtime (Zeit);
Druckverbindung (", @timeData);

Sie sollten etwas Ähnliches sehen, obwohl die Anzahl sehr unterschiedlich sein kann.

20 36 8 27 11 105 2 360 0

Diese Elemente der aktuellen Zeit sind in der Reihenfolge:

  • Sekunden nach der Minute
  • Minuten nach der vollen Stunde
  • Stunden nach Mitternacht
  • Tag des Monats
  • Monate nach Jahresbeginn
  • Anzahl der Jahre seit 1900
  • Anzahl der Tage seit Beginn der Woche (Sonntag)
  • Anzahl der Tage seit Jahresbeginn
  • Gibt an, ob die Sommerzeit aktiv ist

Wenn wir also zum Beispiel zurückkehren und versuchen, es zu lesen, werden Sie feststellen, dass es am 27. Dezember 2005 8:36:20 Uhr ist, zwei Tage nach Sonntag (Dienstag) und 360 Tage seit dem Beginn des Jahr. Sommerzeit ist nicht aktiv.

Die Perl-Ortszeit lesbar machen

Einige der Elemente im Array, die localtime zurückgibt, sind etwas umständlich zu lesen. Wer würde an das laufende Jahr als Anzahl der Jahre nach 1900 denken? Schauen wir uns ein Beispiel an, das Datum und Uhrzeit verdeutlicht.

 #! / usr / local / bin / perl

 @months = qw (Jan Feb Mar Apr Mai Jun Jul Aug Sep Okt Nov Dez);

 @weekDays = qw (So Mo Di Mi Do Fr Sa So);

 ($ second, $ minute, $ hour, $ dayOfMonth, $ month, $ yearOffset, $ dayOfWeek, $ dayOfYear, $ daylightSavings) = localtime ();

 $ year = 1900 + $ yearOffset;

 $ theTime = "$ hour: $ minute: $ second, $ weekDays [$ dayOfWeek] $ months [$ month] $ dayOfMonth, $ year";

 print $ theTime; 

Wenn Sie das Programm ausführen, sollten Sie ein besser lesbares Datum und eine besser lesbare Uhrzeit sehen:

 9:14:42, Mittwoch, 28. Dezember 2005 

Was haben wir getan, um diese besser lesbare Version zu erstellen? Zunächst bereiten wir zwei Arrays mit den Namen der Monate und Tage der Woche vor.

 @months = qw (Jan Feb Mar Apr Mai Jun Jul Aug Sep Okt Nov Dez);

 @weekDays = qw (So Mo Di Mi Do Fr Sa So); 

Da die localtime-Funktion diese Elemente in Werten von 0-11 bzw. 0-6 zurückgibt, sind sie perfekte Kandidaten für ein Array. Der von localtime zurückgegebene Wert kann als numerische Adresse verwendet werden, um auf das richtige Element im Array zuzugreifen.