首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不同的时区显示Net::SFTP时间戳?

问如何在不同的时区显示Net::SFTP时间戳?
EN

Stack Overflow用户
提问于 2012-08-01 12:47:55
回答 1查看 691关注 0票数 0

我正在使用Net::SFTP。我的目的是列出这些文件以及它们的修改日期。我可以列出日期为UTC格式的文件。我需要EDT格式的。是否有可用的设置?

目前,我在Linux上使用Perl5。

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

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-01 13:28:10

如果我的理解是正确的,清单中的longName字段是服务器渲染的,并且已过时/不推荐使用。SFTP提供了一个结构,其中包含每个目录条目的数据,时间以UTC格式列出。

来自文档:

如果指定了$subref,则对于目录中的每个条目,将调用$subref并为其提供一个具有三个键的散列引用: filename,目录列表中条目的名称;long name,“长”列表中的条目,如ls -l;以及a,一个Net::SFTP::Attributes对象,它包含条目的文件属性(atime、mtime、权限等)。

所以你需要获取一个对象,并使用它的atime和mtime字段。一旦你有了它们,如果你需要一个固定的时区,将它们转换成当地时区应该是微不足道的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11752691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档