#!/usr/bin/env perl use strict; use warnings; use POSIX qw (strftime); use Path::Iterator::Rule; use Image::ExifTool; my $dir = q(./pdf); my $tz = strftime( "%z", localtime() ); # my $tz = strftime( "%z", gmtime() ); $tz =~ s/(\d{2})$/':$1'/; my $rule = Path::Iterator::Rule->new; # $rule->file('*.pdf'); # :-( $rule->file->name(qr/.+\.pdf/); $rule->max_depth(1); my $next = $rule->iter($dir); while ( defined( my $file = $next->() ) ) { my $mtime = ( stat($file) )[9]; my $atime = ( stat($file) )[8]; my ( $m_sec, $m_min, $m_hour, $m_day, $m_month, $m_year ) = ( localtime($mtime) )[ 0, 1, 2, 3, 4, 5 ]; # ( gmtime($mtime) )[ 0, 1, 2, 3, 4, 5 ]; $m_year += 1900; my $m_timestamp = sprintf( "%4d:%02d:%02d %02d:%02d:%02d", $m_year, $m_month, $m_day, $m_hour, $m_min, $m_sec ); $m_timestamp .= $tz; my $exifTool = Image::ExifTool->new(); $exifTool->SetNewValue( "ModifyDate", $m_timestamp ); $exifTool->SetNewValue( "CreateDate", $m_timestamp ); $exifTool->WriteInfo($file); utime $atime, $mtime, $file; } __END__ #### karls-mac-mini:monks karl$ perl -MImage::ExifTool=:Public -E 'say ImageInfo("./pdf/a.pdf")->{CreateDate};' 2015:01:07 14:46:51 karls-mac-mini:monks karl$ ls -hl ./pdf/a.pdf -rw-r--r-- 1 karl karl 48K 7 Feb 14:46 ./pdf/a.pdf #### #!/usr/bin/env perl use strict; use warnings; use POSIX qw (strftime); use Path::Iterator::Rule; use Image::ExifTool; my $dir = q(./pdf); my $rule = Path::Iterator::Rule->new; # $rule->file('*.pdf'); # :-( $rule->file->name(qr/.+\.pdf/); $rule->max_depth(1); my $next = $rule->iter($dir); while ( defined( my $file = $next->() ) ) { my $mtime = ( stat($file) )[9]; my $atime = ( stat($file) )[8]; my $m_timestamp = strftime( "%Y:%m:%d %H:%M:%S%z", localtime($mtime) ); my $exifTool = Image::ExifTool->new(); $exifTool->SetNewValue( "ModifyDate", $m_timestamp ); $exifTool->SetNewValue( "CreateDate", $m_timestamp ); $exifTool->WriteInfo($file); utime $atime, $mtime, $file; } __END__