美国主机,用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 />";


>点击查看演示

上一篇 下一篇