首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Perl中将filetime转换为GMT

在Perl中将filetime转换为GMT
EN

Stack Overflow用户
提问于 2020-01-26 00:11:44
回答 3查看 82关注 0票数 1

我正在为新程序员编写一些培训材料,其中我讨论的是HTTP头,所以我正在尝试手动设置Last-Modified。我已经把一切都安排好了,除了把文件时间拿到格林尼治标准时间。以下是我到目前为止所掌握的:

问题是:给定可以在任何时区运行的stat($fh)->mtime,需要添加哪些代码才能转换为GMT

代码语言:javascript
复制
my $scriptFilename = $ENV{'SCRIPT_FILENAME'};
my $timestamp;

my $fh = FileHandle->new;
if ($fh->open("< ${scriptFilename}")) {
    $timestamp = time2str("%a, %e %b %Y %X %Z", stat($fh)->mtime);
    $fh->close;
}

#Last-Modified: Tue, 15 Oct 2019 12:45:26 GMT

print <<"END";
Content-type: text/html; charset=iso-8859-1
Last-Modified: $timestamp

<html>
...
</html>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-01-26 00:38:16

来自Date::Format包的time2str (我假设这就是time2str的来源)接受一个可选的第三个参数来指定时区。

代码语言:javascript
复制
$timestamp = time2str("%a, %e %b %Y %X %Z", stat($fh)->mtime, 'UTC');
票数 5
EN

Stack Overflow用户

发布于 2020-01-26 04:34:58

这里似乎有一些混淆: mtime的结果不是在任何时区,它是从一个固定的时间点的纪元开始的秒数(除了被忽略的闰秒)。因此,你需要做的就是用你想要的时区来表示它,也就是UTC。另一个答案提到了如何使用您一直使用的函数来实现这一点,但是将时间格式化为字符串的常用函数是strftime,它是由几个核心模块提供的。

代码语言:javascript
复制
use strict;
use warnings;

use POSIX 'strftime';
# gmtime interprets the mtime seconds in UTC
my $timestamp = strftime "%a, %e %b %Y %X %Z", gmtime $mtime;

use Time::Piece 'gmtime';
my $timestamp = gmtime($mtime)->strftime("%a, %e %b %Y %X %Z");

但您的用例实际上是一个特定的日期格式,HTTP协议使用的日期格式,并且将始终采用GMT/UTC格式。有一个这样的模块:HTTP::Date

代码语言:javascript
复制
use strict;
use warnings;
use HTTP::Date 'time2str';
my $timestamp = time2str $mtime;
票数 3
EN

Stack Overflow用户

发布于 2020-01-26 00:27:16

基本上

代码语言:javascript
复制
  my $dt = DateTime->new(
      year      => 2000,
      month     => 5,
      day       => 10,
      hour      => 15,
      minute    => 15,
      time_zone => 'America/Los_Angeles',
  );

  print $dt->hour; # prints 15

  $dt->set_time_zone( 'America/Chicago' );

  print $dt->hour; # prints 17

有关如何格式化输出的信息,请参阅here

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

https://stackoverflow.com/questions/59911039

复制
相关文章

相似问题

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