I used the getTime function from that post, and it doesn't work. I stripped it down to something simpler, and I find that I'm getting different output on each run for the same input! Any clue what's wrong here?
sub getTime{
my ($filetimepointer) = @_;
my $systemtime = pack("SSSSSSSS",0,0,0,0,0,0,0,0);
my $FileToSystem = new Win32::API ("kernel32", "FileTimeToSystemTi
+me", ['P','P'] , 'I');
$FileToSystem->Call($filetimepointer,$systemtime);
my($year,$month,$wday,$day,$hour,$minute,$second,$msecond)
= unpack("SSSSSSSS",$systemtime);
return ($year,$month,$wday,$day,$hour,$minute,$second,$msecond);
}
sub printtime
{
my $time= shift;
my ($year,$month,$wday,$day,$hour,$minute,$second,$msecond)= getTime
+(time);
$second += $msecond/1000;
print "$year-$month-$day $hour:$minute:$second\n";
}
my sample data is (in hex) f0 25 f6 89 15 13 c2 01. I read that from a file, and note that the same 8 bytes are in my unpacked $time variable that I pass into printtime as I see in the file. |