maybe the ENV isn't set up for the cgi user?
try
use Env;
print "TZ=$ENV{TZ}\n";
print "LC_TIME=$ENV{LC_TIME}\n";
in the CGI script.
see
perldoc perllocale
Code:
#!/usr/bin/perl -s
use Env;
${TZ}="UTC";
print scalar localtime, "\n";
${TZ}="GB";
print scalar localtime, "\n";
Code:
billym>./1.pl
Wed Oct 10 12:48:33 2007
Wed Oct 10 13:48:33 2007