/blog/perl


substr() in Perl
[153475 mal gelesen]
foreach in Perl
[128979 mal gelesen]
Arrays in Perl - Besonderheiten
[125047 mal gelesen]
split() in Perl - Zeichenketten teilen
[113183 mal gelesen]
open() - Dateien öffnen in Perl
[108804 mal gelesen]
grep - Listen durchsuchen in Perl
[94455 mal gelesen]
chomp() in Perl
[93464 mal gelesen]
push in Perl
[90638 mal gelesen]
sleep in Perl - Das aktuelle Script warten lassen
[75791 mal gelesen]
index() in Perl - Zeichenkette in Zeichenkette suchen
[59233 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 11950 mal gelesen.

Kommentar schreiben  Druckansicht  Seitenanfang 
Beurteilen 






 Zufällige Beiträge im /blog/perl

Dateitestoperatoren - Eigenschaften von Verzeichnissen und Dateien feststellen

eof - Prüft, ob Dateiende erreicht ist

Reguläre Ausdrücke in Perl - Kürzeste Variante finden

Wiederholungen finden mit regulären Ausdrücken

Setupparameter für die Vista Installation

Unicode mit Perl - Einfache (?) Anwendung

Eine nette kleine RegEx

values() - Alle Werte eines Hashes ermitteln



0.0265400409698486 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
27.7.2024

Es ist
6:08:15 Uhr

Ihre IP:
18.118.142.230

Blog-Einträge: 186

Die letzten 24 Stunden im Überblick


Gelesene Beiträge insgesamt:
4406758


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