如何在Perl中以DDMMYY格式获取文件的修改日期?

Igo*_*Oks 3 perl datetime date file

在Perl中以DDMMYY格式获取文件修改日期的最佳方法是什么?

(最初的问题是"没有DateTime模块怎么做".我删除了这个限制,以使问题更加通用.)

bri*_*foy 17

如果这是我需要做的唯一日期格式化,并且不需要任何日期功能,我只使用POSIX(Perl附带):

use POSIX;

my $file = "/etc/passwd";

my $date = POSIX::strftime( 
             "%d%m%y", 
             localtime( 
                 ( stat $file )[9]
                 )
             );
Run Code Online (Sandbox Code Playgroud)

-M如果你没有使用相对时间,请忘了.直接去stat获取纪元时间.


Бер*_*ров 11

有关面向对象的语法,请参阅Time :: Piece.默认情况下,它还在版本5.10和下一个版本中附带Perl.通常在稍后的某个时刻,您需要更多功能.使用时间::件不引入任何旁边localtimegmtime.你只要说,你就可以要求它不要进口任何东西use Time::Piece ();.

use Time::Piece;
localtime((stat $filename)[9])->ymd;                # 2000-02-29
localtime((stat $filename)[9])->ymd('');                 # 20000229
localtime((stat $filename)[9])->dmy("");#is what you wanted



$perl -MTime::Piece -e 'print localtime(time)->dmy("")'
Run Code Online (Sandbox Code Playgroud)