/blog/perl


substr() in Perl
[152607 mal gelesen]
foreach in Perl
[128770 mal gelesen]
Arrays in Perl - Besonderheiten
[124656 mal gelesen]
split() in Perl - Zeichenketten teilen
[112719 mal gelesen]
open() - Dateien öffnen in Perl
[108604 mal gelesen]
grep - Listen durchsuchen in Perl
[94171 mal gelesen]
chomp() in Perl
[93276 mal gelesen]
push in Perl
[90472 mal gelesen]
sleep in Perl - Das aktuelle Script warten lassen
[75545 mal gelesen]
index() in Perl - Zeichenkette in Zeichenkette suchen
[58910 mal gelesen]


Arrays
Dateien
HTPC
Hashes
Leistungsoptimiert
PHP
Perl
RegEx
Schleifen
Script
Skalare
Sonstiges
System
Webserver
Zur Startseite


Samstag, 24.5.2008, 09:18:19 Uhr

Epoche eines bestimmten Datums herausfinden


Aufgrund der Leseranfrage hier will ich doch natürlich eine kleine Routine vorstellen, die dieses Problem löst.
Die Fragestellung war also, wie man ein Datum mit Uhrzeit in Epochen, also Sekunden seit 1.1.1970, 0 Uhr, umwandelt.

Vorbereitung
Wichtig ist es, das Datum und die Uhrzeit in einzelne Werte zu zerlegen, also Tag, Monat, Jahr, Stunde, Minute und Sekunde.

Dann kommt die Funktion Time::Local ins Spiel. Sie errechnet aus den Zeitwerten die Epochen.
Als kleine Sub siehts dann so aus:

sub Epochen_aus_Datum{
use Time::Local;

($sekunde,$minute,$stunde,$tag,$monat,$jahr)=@_;
$time=timelocal($sekunde,$minute,$stunde,$tag,$monat-1,$jahr-1900);

print $time;
return $time;
}



Übergeben werden die einzelnen Werte in der Reihenfolge $sekunde $minute $stunde $tag $monat $jahr.

Interessant ist es zu bemerken, daß die Funktion timelocal Monate von 0 - 11 durchnummeriert, also Januar = 0 und Dezember = 11, und von den Jahren die Jahreszahl - 1900 benötigt, also ist das Jahr 2008 = 108. Falls man die Funktion also einmal anderweitig verwendet sollte man daran denken.

Übrigens
Time::Local gehört zur Standartausstattung von Perl, sollte also auch auf älteren Maschinen verfügbar sein. Falls nicht, kann man aus dem Internet aber auch die Funktion timelocal.pm oder .pl laden und separat auf seinen Rechner schubsen. Damit geht es dann auch, eine Inststallation ist nicht nötig...

Nachtrag
Ich habe hier einen Online-Konverter von Datum zu Epochen und Epochen zurück zum Datum online gestellt. Wer also mal ganz dringend eine Umwandlung braucht, sollte sich die Seite merken...



Kommentare zum Beitrag "Epoche eines bestimmten Datums herausfinden"

Kommentar von Ulrike
Bei Datumseingaben bevorzuge ich mittlerweile das DateTime-Modul. Für die gestellte Aufgabe funktioniert das z.B. so:



$dt = DateTime->now;
print $dt->epoch;



Kommentar von Struppi
oder mktime:


use POSIX qw(mktime);
sub getEpoche {
my ( $sec, $min, $hour, $tag, $monat, $year) = (@_, 0,0,0,0,0,0,0,0);
require POSIX;

return mktime( $sec, $min, $hour, $tag, $monat - 1, $year - 1900);
}


Kommentar von Struppi.
Das require POSIX ist natürlich überflüssig.



Thema: Perl

Der Beitrag "Epoche eines bestimmten Datums herausfinden" wurde 11853 mal gelesen.

Kommentar schreiben  Druckansicht  Seitenanfang 
Beurteilen 






 Zufällige Beiträge im /blog/perl

Den absoluten Pfad eines Scriptes auf dem Server feststellen

each() in Perl - Wertepaare aus Hash auslesen

Unshift Perl

Reguläre Ausdrücke - Einfache Suche mit gemischten Zeichen

Ein PHPBB-Foum auf einen anderen Server umziehen

sendmail-Script

mkdir() - Ein Verzeichnis erstellen in Perl

Letzte Befehle wiederholen unter Windows Vista - doskey

Verknüpfung zu Flip 3D wiederherstellen

Bestimmte Anzahl von Zeilen aus Datei einlesen



0.0247161388397217 sec. to build



...Blogsoftware in pure Perl - Powered by a lot of Coffee...


SSD-Festplatte - Wassn das???
Die Transliteration - Nur ein Zeichen in einem Skalar ersetzen
Select - Case in Perl
Windows 7 XP Mode – Wo finde ich den XP-Modus unter Windows 7?
Mac-Adresse beim Apple Macintosh herausfinden
SGN-Funktion für Perl

Eigene IP herausfinden mit Perl
Epoche live in Datum umwandeln
Firefox 3 - Exe-Files downloaden


Gesamtverzeichnis
Februar 2010
Dezember 2009
Oktober 2009
Januar 2009
Dezember 2008
November 2008
September 2008
August 2008
Juli 2008
Juni 2008
Mai 2008
April 2008
Januar 2008
Dezember 2007
November 2007
Oktober 2007
September 2007
August 2007
Juni 2007
Mai 2007
April 2007
März 2007
Februar 2007
Januar 2007
Dezember 2006


Mister Wong

RSS-Feed

Heute ist der
3.3.2024

Es ist
14:11:05 Uhr

Ihre IP:
3.235.145.108

Blog-Einträge: 186

Die letzten 24 Stunden im Überblick


Gelesene Beiträge insgesamt:
4387093


Webseiten vergleichen
Kalender mit Feiertagen - 2028
Links finden und testen
Menschliche Datumsangaben
IP zu Domain herausfinden
Time live in Datum umwandeln
Perl für Windows



Impressum