比如有个时间是"2010-08-25 08:20:35 GMT",想转换成PDT(太平洋夏令时)时间,perl中没有单独的函数实现,不过可以通过一些列的函数组合来实现。
实现方法:
1. 将时间转换成秒数格式。
2. 设置另一个想要转换的时区。
3. 显示可读时间。
#!/usr/bin/perl
use Time::Format; use Date::Parse; use POSIX qw/tzset/;
$oldtime=$ARGV[0]; $tmptime=str2time("$oldtime");
$ENV{TZ}="$ARGV[1]"; tzset();
$newtime=$time{'yyyy-mm-dd hh:mm:ss tz',$tmptime}; print "$newtime\n";
|
[root@szpxe ~]# perl converttime.pl "2010-08-25 08:20:35 GMT" "PST8PDT" 2010-08-25 01:20:35 PDT
|
注意:Time::format模块要使用1.11版以上,1.02版只会显示PST,即使他已经把时间算成是夏令时,也只显示PST,而不是PDT。
阅读(1946) | 评论(0) | 转发(0) |