#!/usr/bin/perl use strict; use warnings; use 5.010; #use Win32::UTCFileTime qw(:globally); require Date::Calc; # Date::Calc ist eh systemweit eingebunden #system 'cls'; my @files = ( 'xyz', # vom 15.08. also mit Sommerzeit richtig ist 19:14 'abc', # vom 16.12. also ohne Sommerzeit richtig ist 12:42 ); schleife(\@files); sub schleife { my ($files) = @_; foreach my $datei (@$files) { say "Datei '$datei'"; my $stat9 = (stat($datei))[9]; # Perl's localtime my @epoch = localtime $stat9; $epoch[4] ++; $epoch[5] += 1900; say sprintf( "$stat9 --> %02d.%02d.%04d %02d:%02d:%02d", @epoch[3..5], reverse(@epoch[0..2]) ); # Date::Calc @epoch = Date::Calc::Localtime($stat9); # liefert Jahr,Monat,Tag,Stunde,Minute,Sekunde,DayOfYear,DayOfWeek,SommerzeitKNZ say sprintf( "Date::Calc --> %02d.%02d.%04d %02d:%02d:%02d KNZ: $epoch[8]", reverse(@epoch[0..2]), @epoch[3..5] ); # Sommerzeitkorrektur if ($^O =~ /mswin/i && $epoch[8] == 1) { @epoch = Date::Calc::Add_Delta_DHMS(@epoch[0..5],0,1,0,0); # 1 Stunde addieren say sprintf( "korrigiert --> %02d.%02d.%04d %02d:%02d:%02d", reverse(@epoch[0..2]), @epoch[3..5] ); } say "\n"; } }