0

Net::SFTPを使用しています。私の意図は、ファイルを変更日とともに一覧表示することです。UTC形式の日付でファイルを一覧表示できます。EDT形式で必要です。利用できる設定はありますか?

現在、LinuxでPerl5を使用しています。

my $sftp = Net::SFTP->new($host, %args) or die "Cannot connect to $@";
$sftp->ls('.' , sub { print $_[0]->{longname}, "\n" });
4

1 に答える 1

0

私の理解が正しければ、リストのlongNameフィールドはサーバーでレンダリングされ、廃止されているか、使用が推奨されていません。SFTPは、各ディレクトリエントリのデータを含む構造を提供し、時刻はUTCで一覧表示されます。

ドキュメントから:

$ subrefが指定されている場合、ディレクトリ内のエントリごとに$ subrefが呼び出され、次の3つのキーを持つハッシュへの参照が与えられます。filename、ディレクトリリスト内のエントリの名前。longname、ls-lのような「長い」リストのエントリ。エントリのファイル属性(atime、mtime、permissionsなど)を含むNet :: SFTP::Attributesオブジェクト

したがって、これらのオブジェクトを取得し、そのatimeフィールドとmtimeフィールドを使用する必要があります。それらを取得したら、固定のタイムゾーンが必要な場合は、ローカルタイムゾーンに変換するのは簡単です。

于 2012-08-01T05:28:10.240 に答える