在 Perl 中转换时间戳
Converting timestamps in Perl
我希望转换如下所示的时间戳
2019-01-01T02:15:00+00:00
在 Perl 中进入澳大利亚东部标准时间。
我有超过 10,000 个这样的时间戳,非常感谢任何帮助
我需要将它们输入到格式为 YYYY-MM-DD hh:mm:ss
的 mysql 数据库中
您将使用标准的 Perl 模块 Time::Piece。它提供标准的 strptime
和 strftime
函数。第一个允许您使用模板解析时间戳,第二个输出基于同类模板的时间戳。要更改时区,您需要加上或减去秒数差异。
$t = Time::Piece->strptime("2020-11-04T01:46:00", "%Y-%m-%dT%H:%M:%S");
$t += $offset;
print $t->strftime("%Y-%m-%dT%H:%M:%S");
或者如果您的当前时间是当前语言环境并且您总是从 GMT 转换:
$t = Time::Piece->strptime("2020-11-04T01:46:00", "%Y-%m-%dT%H:%M:%S");
$l = localtime $t->epoch;
print $l->strftime("%Y-%m-%dT%H:%M:%S");
现在,如果您需要做比这更复杂的事情(夏令时、闰秒),可以使用 DateTime 模块,但相应地使用起来要复杂得多。
另见 How can I parse dates and convert time zones in Perl?
HTH
我希望转换如下所示的时间戳
2019-01-01T02:15:00+00:00
在 Perl 中进入澳大利亚东部标准时间。 我有超过 10,000 个这样的时间戳,非常感谢任何帮助 我需要将它们输入到格式为 YYYY-MM-DD hh:mm:ss
的 mysql 数据库中您将使用标准的 Perl 模块 Time::Piece。它提供标准的 strptime
和 strftime
函数。第一个允许您使用模板解析时间戳,第二个输出基于同类模板的时间戳。要更改时区,您需要加上或减去秒数差异。
$t = Time::Piece->strptime("2020-11-04T01:46:00", "%Y-%m-%dT%H:%M:%S");
$t += $offset;
print $t->strftime("%Y-%m-%dT%H:%M:%S");
或者如果您的当前时间是当前语言环境并且您总是从 GMT 转换:
$t = Time::Piece->strptime("2020-11-04T01:46:00", "%Y-%m-%dT%H:%M:%S");
$l = localtime $t->epoch;
print $l->strftime("%Y-%m-%dT%H:%M:%S");
现在,如果您需要做比这更复杂的事情(夏令时、闰秒),可以使用 DateTime 模块,但相应地使用起来要复杂得多。
另见 How can I parse dates and convert time zones in Perl?
HTH