perl之在 Perl 中将时区名称转换为 GMT 时区偏移量
98°冷暖
阅读:17
2024-08-05 10:48:10
评论:0
我有一个 timzeone 名称作为输入,例如 'Europe/Istanbul
' 作为字符串。
如何获取 GMT 的当前偏移量(基于当前时间),即 +2
作为输出?
PS,我用的是DateTime::TimeZone如果这可能有帮助
请您参考如下方法:
您可以使用 DateTime::TimeZone 的 offset_for_datetime
获取当前偏移量方法或 DateTime 的 offset
方法。需要 DateTime 对象,因为偏移量可能会因日期时间而异(主要是因为夏令时)。
my $tz_name = 'Europe/Istanbul';
my $dt = DateTime->now( time_zone => $tz_name );
for (1..2) {
my $offset = $dt->offset;
printf("Offset for %s in %s is %+g\n", $dt->iso8601, $tz_name, $offset / 60 / 60);
$dt->add( months => 6 );
}
输出:
Offset for 2015-02-18T18:20:30 in Europe/Istanbul is +2
Offset for 2015-08-18T18:20:30 in Europe/Istanbul is +3
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。