2009-03-02 11 views

Antwort

7

DateTime auf CPAN Macht von Nutzen. Es hat auch eine Los von Zeitmanipulations-/Übersetzungsmethoden.

Erstellen Sie einfach die DateTime mit Ihren Teilen und rufen Sie $ datetime-> formatter ("% s");

+0

Ja. Verwenden Sie im Zweifelsfall DateTime - das One True Perl-Zeitsystem. Das Hin- und Herspringen zwischen kniffligen Datum/Zeit-Tools ist helltüchtig. – Anirvan

14

Sie können die Timelocal-Funktion im CPAN-Modul Time::Local verwenden.

Name

Time :: Local - effizient Zeit berechnen von lokalen und GMT-Zeit

SYNTAX

$time = timelocal($sec,$min,$hour,$mday,$mon,$year); 
$time = timegm($sec,$min,$hour,$mday,$mon,$year); 

BESCHREIBUNG

Dieses Modul bietet Funktionen, die sind die Umkehrung der eingebauten Perl Funktionen localtime() und gmtime(). Sie akzeptieren ein Datum als sechs Elemente Array und geben den entsprechenden Zeit (2) Wert in Sekunden seit der Systemepoche (Mitternacht, 1. Januar, 1970 GMT unter Unix, zum Beispiel). Dieser Wert kann positiv oder negativ sein, , obwohl POSIX nur Unterstützung für positive Werte erfordert, so dass Daten vor der -Systemepoche möglicherweise nicht auf allen -Betriebssystemen funktionieren.

Es lohnt sich, speziell die Zeichen auf die erwarteten Bereiche für die angegebenen Werte zu zeichnen. Der Wert für den Tag des Monats ist der tatsächliche Tag (dh 1..31), während der Monat die Anzahl der Monate seit Januar (0.11) ist. Diese ist konsistent mit den zurückgegebenen Werten von localtime() und gmtime().

Hinweis:POSIX::mktime ist nur ein Wrapper um Ihre mktime() Funktion der C-Bibliothek. Time :: Local ist eine reine Perl-Implementierung und gibt immer die Ergebnisse zurück, die mit Perls localtime übereinstimmen. Auch Time :: Local bietet gmtime an, während mktime nur in Ortszeit funktioniert. (Nun, Sie könnten versuchen, $ENV{TZ} zu ändern, aber das funktioniert bei einigen Systemen nicht.)

+0

Ich weiß nicht, welche Unterschiede, wenn überhaupt, zwischen Time :: Local und POSIX :: mktime bestehen, aber ich habe immer Time :: Local verwendet und hatte nie Probleme damit. –

+1

Hinweis: Perls localtime ist nur ein Wrapper für die localtime- oder localtime_r-Funktion Ihrer C-Bibliothek und gibt immer Ergebnisse zurück, die Cs mktime entsprechen. :) – ysth

+1

Nun, es gibt einen Patch, der Perls Localtime y2038 sicher macht, auch wenn die Version Ihrer C-Library nicht ist.Ich denke nicht, dass es standardmäßig integriert ist, aber es wird wahrscheinlich sein. Es behebt Time :: Local, aber ich glaube nicht, dass es POSIX :: mktime patcht. – cjm

Verwandte Themen