Wie kann ich die Daten analysieren und umwandeln Zeitzonen in Perl?
Habe ich die localtime Funktion in Perl zu erhalten, das aktuelle Datum und die Zeit, aber brauchen, um zu analysieren, in der vorhandene Daten. Ich habe eine GMT-Datums im folgenden format: "20090103 12:00" möchte ich analysieren, in ein date-Objekt, mit dem ich arbeiten und dann konvertieren Sie die GMT-Uhrzeit/Datum in meiner aktuellen Zeitzone, die derzeit die Eastern Standard Time. Also würde ich gerne konvertieren "20090103 12:00" , "20090103 7:00" alle Informationen zu diesem würde sehr geschätzt werden.
Siehe auch: stackoverflow.com/questions/95492/how-do-i-convert-a-date
Überprüfen Sie diese: http://www.bestofperl.com/how-tos/timezone-conversion-date-time http://www.bestofperl.com/how-tos/parsing-datetime-strings
Überprüfen Sie diese: http://www.bestofperl.com/how-tos/timezone-conversion-date-time http://www.bestofperl.com/how-tos/parsing-datetime-strings
InformationsquelleAutor Jared | 2009-01-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil der Perl im Termin-handling-Schnittstellen sind irgendwie klobig und Sie wind-up-vorbei an rund einem halben Dutzend Variablen, der bessere Weg ist, um entweder DateTime oder Time::Piece. DateTime ist die all-singing, all-dancing Perl-date-Objekt, und Sie werden wahrscheinlich irgendwann wollen, es zu benutzen, aber die Zeit::das Stück ist einfacher und vollkommen ausreichend für diese Aufgabe, hat den Vorteil, Versand mit 5.10 und die Technik ist grundsätzlich die gleiche für beide.
Hier ist die einfache und flexible Möglichkeit, mit Time::Piece und strptime.
Und hier ist die hand Weg, für den Kontrast.
Da das format fixiert ist, ein regulärer Ausdruck tun gut, aber wenn die format-änderungen, die Sie haben zu zwicken regex.
Dann konvertieren Sie es in Unix-epoch (Sekunden seit dem 1. Januar, 1970)
Und dann zurück zu Ihrer lokalen Zeit.
use POSIX qw(strftime)
auf Unix-und Windows-Systeme aus mindestens Perl 5.6.0 weiter. Sie ermöglicht, dass der Letzte "roll-your-own" zu werden, kürzer und wartbarer:my $local_date = strftime "%Y%m%d %H:%M\n", localtime($time);
.$Zeit->localtime->tzoffset AFAICT gibt den offset für die aktuelle Zeit, nicht die Zeit.
Ja, und das ist ok, es sei denn, wir wollen zur Sorge über die historischen änderungen der Zeitzone, die ich sicher nicht. DST wichtig sein könnte.
Ja, dies ist Teil des Designs. Eher als der Versand mit einer Vielzahl von Formatierungen, die Sie sind plugins. Siehe Formatierungshilfen und Stringification in der Dokumentation. Der Nachteil ist DateTime nicht einmal die einfachste Formatierung aus der box. Der Vorteil ist es gibt eine Menge von Formatierungen.
Behoben. . .
InformationsquelleAutor Schwern
Hier ist ein Beispiel, mit DateTime und seine strptime format-Modul.
Wenn Sie wollte, um zu analysieren, localtime, hier ist, wie Sie es tun würde 🙂
Sie fehlt der parsing-Teil.
Oh, stimmt. Ich habe fälschlicherweise angenommen, er wollte mit localtime Ausgabe.
InformationsquelleAutor Vinko Vrsalovic
Das ist, was ich tun würde ...
Können Sie auch
Time::ParseDate
undparsedate()
stattDate::Parse
undstr2time()
. Beachten Sie, dass die de-facto-standard atm. scheint DateTime (aber Sie vielleicht nicht wollen, verwenden Sie die OO-syntax einfach zu konvertieren timestamp).InformationsquelleAutor mjy
Treffen Sie Ihre Wahl:
Gibt es eine Unmenge andere, kein Zweifel, aber Sie sind wahrscheinlich die top-Anwärter.
Aber ich glaube nicht, dass die Aktivität stattgefunden hatte, die von 4. Januar 2009, als ich schrieb, dass Kommentar. Allerdings ist es gut zu wissen, dass es gepflegt wird. Gute stabile Module müssen nicht unbedingt viel Arbeit wie Perl fortschreitet.
InformationsquelleAutor Jonathan Leffler
InformationsquelleAutor saiprathapreddy.obula