18十一/101
Perl设置时区,获得指定时区的时间
美国主机,用Perl在localtime获得的自然是美国时间了。如何在美国主机时获得中国标准时间(CST, 东八区)呢?php也好,MYSQL也罢,都很简单。其实,Perl也不难。
Perl会根据环境变量TZ,即全局变量$ENV{TZ}来读取当前时区,并根据该时区进行日期时间显示。所以,只要将$ENV{TZ}修改为Asia/Shanghai就可以了。注意,修改的时区只对当前会话(或者当前脚本,没搞清楚)有效
借助POSIX模块的tzset可以安全可靠地修改时区,以下是参考代码:
#!/usr/bin/perl
###############################################
## testtime.pl - 设置时区并获得该时区的时间 ###
## by LoRui(i@lorui.com, www.lorui.com) ###
###############################################
use strict;
use warnings;
use POSIX qw(tzset);
#输出HTTP头
print "content-type:text/html;charset=utf-8;\n\n";
#获取服务器默认时间
my $was = localtime;
print "服务器默认时间: $was <br />";
#设置时区为东八区,中 国标准时间
$ENV{TZ} = 'Asia/Shanghai';
tzset;
#获取中国标准时间
my $now = localtime;
print "中国标准时间:$now<br />";
>点击查看演示
热度: 4% [?]

2010年11月27日 15:20
帮我大忙了,谢谢!
[回复]