Chinaunix首页 | 论坛 | 博客
  • 博客访问: 482814
  • 博文数量: 67
  • 博客积分: 2952
  • 博客等级: 少校
  • 技术积分: 679
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-24 10:50
文章分类

全部博文(67)

文章存档

2011年(9)

2010年(36)

2009年(8)

2008年(5)

2007年(5)

2006年(4)

我的朋友

分类:

2010-08-26 21:01:00

  比如有个时间是"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) |
给主人留下些什么吧!~~