如何将ctime更改为正常的字符串表示?

Hai*_*ang 3 perl

使用File::stat我们可以获得ctime给定文件.我的问题是如何更改ctime,这意味着从纪元以来的inode更改时间(以秒为单位)到正常时间表示,如"2009-08-26 17:28:28".是否有任何内置或模块可以解决此任务?

小智 9

最标准的方法是使用POSIX模块和它的strftime函数.

use POSIX qw( strftime );
use File::stat;

my $stat_epoch = stat( 'some_file.name' )->ctime;
print strftime('%Y-%m-%d %H:%M:%S', localtime( $stat_epoch ) );
Run Code Online (Sandbox Code Playgroud)

所有这些标记,如%Y,%m等,都是在标准中定义的,并且在C,系统"日期"命令(至少在Unix上)中的工作方式相同,依此类推.