我正在创建问题数据集, 我正准备将文件修改时间设定为 & lt; 1900 。 我知道 < a href=" http:// perldoc.perl. org/Time/ local. html" rel= “ nofollow” Time:: 本地 < / a > 使用了1900 的抵消。 我在想, 是否有办法使用此偏移来创建在 1900 年之前修改时间的文件 。 (Windows Enviroment btw.)
这是我至今为止一直使用的代码:
use strict;
use warnings;
use File::stat;
use Time::localtime;
use Time::Local;
my $file = "test.txt";
my $when = timelocal(0,0,10,25,6,1899);
#current mod time of the file
my $datetime_string = ctime(stat($file)->mtime);
print $datetime_string,"
";
#change the mod time of the file
utime $when, $when, $file;
#new mod time
$datetime_string = ctime(stat($file)->mtime);
print $datetime_string,"
";
Edit :关于@ikegam s comment,我开始查看 Win32::API
。 具体来说, Win32API:::File:Time
。 这是我至今为止的代码:
use Win32API::File::Time qw{:win};
$filename="AnnotationTest.java";
($atime, $mtime, $ctime) = GetFileTime ($filename);
print $mtime,"
";
SetFileTime ($filename, $atime, $mtime, $ctime);
($atime, $mtime, $ctime) = GetFileTime ($filename);
print $mtime,"
";
使用此代码, 我无法100%确定修改时间的格式 。