/blog/perl


substr() in Perl
[156425 mal gelesen]
foreach in Perl
[129940 mal gelesen]
Arrays in Perl - Besonderheiten
[126641 mal gelesen]
split() in Perl - Zeichenketten teilen
[115260 mal gelesen]
open() - Dateien öffnen in Perl
[109864 mal gelesen]
grep - Listen durchsuchen in Perl
[95934 mal gelesen]
chomp() in Perl
[94384 mal gelesen]
push in Perl
[91718 mal gelesen]
sleep in Perl - Das aktuelle Script warten lassen
[76825 mal gelesen]
index() in Perl - Zeichenkette in Zeichenkette suchen
[61067 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 12376 mal gelesen.

Kommentar schreiben  Druckansicht  Seitenanfang 
Beurteilen 






 Zufällige Beiträge im /blog/perl

head einer Webseite einlesen mit Statuscode

Wiederholungen finden mit regulären Ausdrücken

undef in Perl

split() in Perl - Zeichenketten teilen

Mac-Adresse beim Apple Macintosh herausfinden

ucfirst () - Erstes Zeichen einer Zeichenkette in Großbuchstaben umwandeln

eof - Prüft, ob Dateiende erreicht ist

uc() in Perl - Alle Buchstaben in Großbuchstaben umwandeln

push in Perl

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



0.0240950584411621 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
4.3.2026

Es ist
6:35:21 Uhr

Ihre IP:
216.73.216.141

Blog-Einträge: 186

Die letzten 24 Stunden im Überblick


Gelesene Beiträge insgesamt:
4511758


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