【发布时间】:2020-03-31 15:38:56
【问题描述】:
是否可以在 perl 中将 mtime 从 fstat 获取/转换为本地时间?
如果我这样做了
my $stat = stat($file);
my $mtime = $stat->mtime;
my $time = Time::Piece->strptime($time, '%s');
然后将该时间格式化为 - 比如说 - '%Y%m%d%H%M' 我得到的时间比我在 ls -l 上看到的时间早 1 小时,因为我住在其中并且我的机器配置为 GMT+1。
我希望输出与ls -l 一致
如果
> ls -l foo.txt
> -rw-r--r--@ 1 somuser 296108113 163673 Mar 31 16:43 foo.txt
输出是202003311643而不是 - 就像我现在得到的 - 202003311443(GMT+1 和 DST)。
有没有办法以直接的方式处理这个问题(即:这样我就不必手动调整时区或 DST)?
【问题讨论】:
-
尝试设置“TZ”环境变量。不是在 Perl 中,而是在你的 shell 中。很久以前,你以前总是需要这个,现在不确定它是不是真的,但我总是在我使用的每台机器上设置它。对我(美国东部)来说,它是 TZ=EST5EDT,因此请寻找一种适用于您所在位置的格式。