Heim  >  Artikel  >  Backend-Entwicklung  >  So stellen Sie die aktuelle Zeit in Perl dar

So stellen Sie die aktuelle Zeit in Perl dar

藏色散人
藏色散人Original
2019-02-15 10:59:053367Durchsuche

Perl verfügt über eine praktische integrierte Funktion zum Ermitteln des aktuellen Datums und der aktuellen Uhrzeit in einem Skript. Wenn wir jedoch davon sprechen, die Zeit zu finden, meinen wir die Zeit, die aktuell auf dem Computer eingestellt ist, auf dem das Skript ausgeführt wird. Wenn Sie beispielsweise ein Perl-Skript auf Ihrem lokalen Computer ausführen, gibt localtime die aktuelle Zeit zurück, die Sie eingestellt haben, und möglicherweise auch Ihre aktuelle Zeitzone.

So stellen Sie die aktuelle Zeit in Perl dar

Wenn Sie dasselbe Skript auf dem Webserver ausführen, stellen Sie möglicherweise fest, dass die Ortszeit auf dem Desktop-System von der Ortszeit abweicht. Der Server befindet sich möglicherweise in einer anderen Zeitzone oder hat falsche Einstellungen. Jede Maschine hat möglicherweise eine völlig andere Vorstellung von der Ortszeit und es kann einige Anpassungen im Skript oder auf dem Server selbst erfordern, damit sie Ihren Erwartungen entspricht.

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

#!/usr/local/bin/perl
@timeData = localtime(time);
print join(' ', @timeData);

Sie sollten etwas Ähnliches sehen, auch wenn die Zahlen deutlich unterschiedlich sein können.

20 36 8 27 11 105 2 360 0

Diese Elemente der aktuellen Zeit sind in der Reihenfolge:

– eine Minute ist vergangen

– mehrere Minuten sind vergangen

– Mitternachtsstunde

– der Tag des Monats

– die Anzahl der Monate seit Beginn der Woche

– die Anzahl der Jahre seit 1900

– die Anzahl der Tage seitdem Beginn der Woche (Sonntag)

– Anzahl der Tage seit Beginn des Jahres

– Ob Sommerzeit in Kraft ist

Perl-Ortszeit lesbar machen

im von localtime zurückgegebenen Array. Einige Elemente lesen sich etwas umständlich. Wer würde sich dieses Jahr im Hinblick auf die Jahre nach 1900 vorstellen? Schauen wir uns ein Beispiel an, um unsere Daten und Zeiten klarer zu machen.

Wenn Sie dieses Programm ausführen, werden Datum und Uhrzeit besser lesbar angezeigt, etwa so:

 9:14:42, Wed Dec 28, 2018

Was haben wir also getan, um dies besser lesbar zu machen? Was ist mit der Version? Zuerst bereiten wir vor zwei Arrays mit den Namen der Monate und Wochentage.

@months = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
@weekDays = qw(Sun Mon Tue Wed Thu Fri Sat Sun);

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

$months[$month] $weekDays[$dayOfWeek]

Der nächste Schritt besteht darin, alle Werte aus der Localtime-Funktion abzurufen. In diesem Beispiel verwenden wir eine Perl-Verknüpfung, um jedes Element im Localtime-Array automatisch in eine eigene Variable einzufügen. Wir wählen Namen, um es einfacher zu machen, sich daran zu erinnern, welches Element welches ist.

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

Wir müssen auch den Wert für das Jahr anpassen. Denken Sie daran, dass die Ortszeit die Anzahl der Jahre seit 1900 zurückgibt. Um das aktuelle Jahr zu ermitteln, müssen wir also 1900 zum angegebenen Wert addieren.

$year = 1900 + $yearOffset;

So stellen Sie die aktuelle Weltzeit in Perl dar

Angenommen, Sie möchten alle möglichen Zeitzonenverwirrungen vermeiden und Ihren eigenen Zeitunterschied kontrollieren. Wenn Sie die aktuelle Zeit in Ortszeit abrufen, wird immer ein Wert zurückgegeben, der auf der Zeitzoneneinstellung des Computers basiert. Ein Server in den USA gibt eine Zeit zurück, während ein Server in Australien eine Zeit zurückgibt, die aufgrund der Zeitzone im Laufe des Tages fast völlig unterschiedlich ist Unterschiede.

Perl verfügt außerdem über eine zweite praktische Zeitanzeigefunktion, die genau wie die Ortszeit funktioniert, aber statt einer festen Zeit in der Zeitzone der Maschine die koordinierte Weltzeit (UTC, auch bekannt als Greenwich Mean Time oder GMT) zurückgibt ). Diese Funktion heißt ganz einfach gmtime

 #!/usr/local/bin/perl
@timeData = gmtime(time);
print join(' ', @timeData);

Es gibt keinen Unterschied zwischen den Funktionen gmtime und localtime, außer dass die zurückgegebene Zeit auf jedem Computer dieselbe ist wie in GMT. Alle Daten und Transformationen werden auf die gleiche Weise durchgeführt.

#!/usr/local/bin/perl
@months = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
@weekDays = qw(Sun Mon Tue Wed Thu Fri Sat Sun);
($second, $minute, $hour, $dayOfMonth, $month, $yearOffset, $dayOfWeek, $dayOfYear, $daylightSavings) = gmtime();
$year = 1900 + $yearOffset;
$theGMTime = "$hour:$minute:$second, $weekDays[$dayOfWeek] $months[$month] $dayOfMonth, $year";
print $theGMTime;

1.localtime gibt die aktuelle Ortszeit auf dem Computer zurück, auf dem das Skript ausgeführt wird.

2.gmtime gibt die Universal Greenwich Mean Time oder GMT (oder UTC) zurück.

3. Der Rückgabewert entspricht möglicherweise nicht Ihren Erwartungen. Konvertieren Sie ihn daher gegebenenfalls.

Verwandte Empfehlungen: „Perl-Tutorialhttp://www.php.cn/course/list/39.html

Dieser Artikel In diesem Artikel geht es darum, wie man Perl zur Darstellung der aktuellen Zeit verwendet. Ich hoffe, dass er Freunden in Not hilfreich sein wird!

Das obige ist der detaillierte Inhalt vonSo stellen Sie die aktuelle Zeit in Perl dar. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn