/blog/perl


substr() in Perl
[104620 mal gelesen]
foreach in Perl
[96938 mal gelesen]
Arrays in Perl - Besonderheiten
[86266 mal gelesen]
open() - Dateien öffnen in Perl
[83437 mal gelesen]
chomp() in Perl
[71314 mal gelesen]
grep - Listen durchsuchen in Perl
[66434 mal gelesen]
push in Perl
[61463 mal gelesen]
split() in Perl - Zeichenketten teilen
[59347 mal gelesen]
sleep in Perl - Das aktuelle Script warten lassen
[44523 mal gelesen]
print in Perl
[40570 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 7909 mal gelesen.

Kommentar schreiben  Druckansicht  Seitenanfang 
Beurteilen 






 Zufällige Beiträge im /blog/perl

my in Perl

Wiederholungen finden mit regulären Ausdrücken

Bestimmte Dateien eines Ordners suchen - Aus der Praxis - Suchen nach Dateiendung

Identische Dateien finden - Der Holzweg

HTPC unter Vista - Mein Wohnzimmer-PC

Dateien öffnen - Sicherheitsrisiko von Benutzereingaben

while in Perl

Mein HTPC - Weitere Erfahrungen

exists() - Prüfen, ob ein Hash-Element existiert

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



0.028857946395874 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
truncate - Dateigröße verändern in Perl
Eigene IP herausfinden mit Perl
Epoche live in Datum umwandeln
Firefox 3 - Exe-Files downloaden


Von: perluser
Kommentar:
Bei
foreach (@a){$_=~ s/\n//;}
Zum Beitrag


Von: Susi
Kommentar:
vielen Dank, hat mir sehr geholfen :-)
Zum Beitrag


Von: TBu
Kommentar:
Hi,
super Beispiel, DANKE!
Zum Beitrag


Von: Thomas Ha
Kommentar:
Danke für den schönen Blog, er dient mir öfters mal als Nachschlagewerk!

Zum Beitrag


Von: Kasi
Kommentar:
auch im november 2011 noch super hilfreich,danke dir gruß
Zum Beitrag



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
9.2.2012

Es ist
6:31:49 Uhr

Ihre IP:
38.107.179.239

Blog-Einträge: 186

Die letzten 24 Stunden im Überblick


Gelesene Beiträge insgesamt:
2969279


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



Mo Di Mi Do Fr Sa So
12345
6789101112
13141516171819
20212223242526
272829

Impressum